Initial TrueGrowth source import

This commit is contained in:
2026-07-07 09:36:36 +08:00
commit 3b6781d695
2283 changed files with 691996 additions and 0 deletions

128
docs/VERSION_CONTROL.md Normal file
View File

@@ -0,0 +1,128 @@
# 版本控制和缓存管理
## 🎯 版本控制策略
### 1. 版本号管理
项目使用 [语义版本控制 (Semantic Versioning)](https://semver.org/)
- `MAJOR.MINOR.PATCH` (例如: 1.2.3)
- **PATCH**: 向后兼容的错误修复
- **MINOR**: 向后兼容的新功能
- **MAJOR**: 不向后兼容的重大更改
### 2. 发布命令
```bash
# 补丁版本 (0.0.7 -> 0.0.8)
npm run release
# 次版本 (0.0.7 -> 0.1.0)
npm run release:minor
# 主版本 (0.0.7 -> 1.0.0)
npm run release:major
# 仅构建(不更新版本号)
npm run build
# 单独的版本升级命令
npm run version:patch # 仅升级版本号
npm run version:minor # 仅升级版本号
npm run version:major # 仅升级版本号
```
## 🔧 缓存管理机制
### 1. Service Worker 版本化
- 每次构建时Service Worker 缓存名称包含版本号
- 新版本发布时自动清除旧版本缓存
- 开发模式禁用缓存,生产模式启用完整缓存
### 2. 自动更新检测
- 应用每5分钟检查一次版本更新
- 发现新版本时显示更新提示
- 用户可选择立即更新或稍后更新
### 3. 强制缓存清除
用户更新时会:
1. 清除所有浏览器缓存
2. 强制 Service Worker 更新
3. 重新加载页面获取最新资源
## 📁 相关文件
### 版本控制文件
- `package.json` - 版本号定义
- `scripts/safe-version-bump.js` - 智能版本升级脚本
- `scripts/update-version.js` - 版本更新脚本
- `apps/web/public/version.json` - 运行时版本信息
### 缓存管理文件
- `apps/web/public/sw.js` - Service Worker (含版本化缓存)
- `packages/drawnix/src/components/version-update/` - 版本更新组件
- `apps/web/src/main.tsx` - Service Worker 注册和更新逻辑
## 🚀 部署流程
### 开发环境
```bash
npm start # 启动开发服务器,禁用缓存
```
### 生产环境
```bash
# 1. 更新版本号并构建
npm run release
# 2. 部署到服务器
# 确保 version.json 和 sw.js 都包含新版本号
```
## 🔍 版本检查机制
### 1. 版本信息来源
- **当前版本**: HTML meta 标签 `<meta name="app-version">`
- **最新版本**: 服务器 `/version.json` 接口
### 2. 更新触发条件
- 定时检查 (每5分钟)
- Service Worker 更新事件
- 用户手动刷新
### 3. 缓存策略
- **开发模式**: 完全禁用缓存,实时更新
- **生产模式**: 版本化缓存,自动清理旧版本
## 🛠️ 自定义配置
### 修改检查频率
`version-update.tsx` 中修改:
```javascript
// 每5分钟检查一次更新
const interval = setInterval(checkForUpdates, 5 * 60 * 1000);
```
### 修改缓存策略
`sw.js` 中修改缓存名称和清理逻辑:
```javascript
const CACHE_NAME = `drawnix-v${APP_VERSION}`;
const IMAGE_CACHE_NAME = `drawnix-images-v${APP_VERSION}`;
const STATIC_CACHE_NAME = `drawnix-static-v${APP_VERSION}`;
```
## 📊 监控和调试
### 查看当前版本
```javascript
// 控制台中查看
console.log(document.querySelector('meta[name="app-version"]').content);
```
### 查看缓存状态
```javascript
// 控制台中查看所有缓存
caches.keys().then(console.log);
```
### Service Worker 调试
1. 打开 DevTools > Application > Service Workers
2. 查看当前 SW 状态和版本
3. 可手动触发更新或注销