feat: 构建系统重构 + VCHSM 架构迁移 + 右键菜单修复 + 尺寸参数统一

## 构建、打包与分发系统重构 (build/)

- 构建系统收敛至 build/ 目录:build.mjs + electron-builder.js + 6 个脚本

- electron-builder 配置从 package.json 提取为 build/electron-builder.js

- 新增 --edition (personal/enterprise) 和 --channel (stable/beta/alpha) 参数

- OSS 路径按渠道隔离

- 新增 pre-build-check.mjs:Git/CHANGELOG/版本/环境变量校验

- 新增 bump-version.mjs:版本号管理 + CHANGELOG 自动生成

- updater.ts 发送 channel/edition/deviceFingerprint

- 新增 src/shared/utils/rollout.ts 灰度测试工具

- 新增 10 条 NPM 脚本

## VCHSM 五层架构迁移

- 7 个业务模块 + ~500 处导入路径同步

## 修复

- MediaCardContextMenu 改用共享 ContextMenu 组件

- ComboBox 尺寸参数显示统一 (size-format.ts)

## 文档

- UpdateA.md / build/README.md / README.md / .env.example 更新

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-29 18:41:07 +08:00
parent e0d91335c7
commit 337d6c1205
187 changed files with 5252 additions and 1702 deletions

148
README.md
View File

@@ -37,52 +37,60 @@ npm run build:win
### 打包
```bash
npm run build:win # Windows 个人版
npm run build:win # Windows 个人版 Stable
npm run build:win:enterprise # Windows 企业版
npm run build:win:beta # Windows Beta 渠道(灰度测试)
npm run build:win:alpha # Windows Alpha 渠道(内部测试)
npm run build:mac # macOS 个人版
npm run build:linux # Linux 个人版
```
### 构建总管 `build.mjs`
### 构建总管 `build/build.mjs`
所有打包命令最终调用 `build.mjs`,支持灵活组合操作:
所有打包命令最终调用 `build/build.mjs`,支持灵活组合操作:
```bash
# 查看帮助
node build.mjs --help
node build/build.mjs --help
# 仅打包
node build.mjs --win --personal
node build/build.mjs --win
# 打包 + 上传 OSS + 发布到 API
node build.mjs --win --personal --upload --publish
node build/build.mjs --win --upload --publish
# 全流程(清理 → 构建 → 签名 → 上传 → 发布)
node build.mjs --win --enterprise --all
# Beta 渠道全流程(清理 → 构建 → 签名 → 上传 → 发布)
node build/build.mjs --win --channel beta --all
# 带签名打包
node build.mjs --win --personal --sign --cert ./cert.pfx --cert-password xxx
# 先清理再构建
node build.mjs --win --personal --clean --build
node build/build.mjs --win --sign --cert ./cert.pfx --cert-password xxx
```
| 操作 | 说明 |
|-------------|---------------------------------------------------------|
| `--build` | 构建(默认:tsc + vite + electron-builder + update-info.json |
| `--clean` | 构建前清理 release/ dist/ dist-electron/ |
| `--sign` | 代码签名(需配合 `--cert``CSC_LINK` 环境变量) |
| `--upload` | 上传安装包到 OSS |
| `--publish` | POST 版本信息到后端 API |
| `--all` | 全流程 |
| 操作 | 说明 |
|-------------|------------------------------------------------------------|
| `--build` | 构建(校验 → tsc vite electron-builder update-info.json |
| `--clean` | 构建前清理 release/ dist/ dist-electron/ |
| `--sign` | 代码签名(需配合 `--cert``CSC_LINK` 环境变量) |
| `--upload` | 上传安装包到 OSS |
| `--publish` | POST 版本信息到后端 API |
| `--all` | 全流程 |
| `--edition` | 版本类型personal默认/ enterprise |
| `--channel` | 发布渠道stable默认/ beta / alpha |
### 版本管理
```bash
npm run version:patch # 0.0.28 → 0.0.29
npm run version:pre-beta # 0.0.29 → 0.0.30-beta.1
```
### 工具命令
```bash
npm run build:clean # 清理所有构建产物
node scripts/upload-oss.mjs win32 personal 0.1.0 # 手动上传 OSS
node scripts/publish-release.mjs win32 personal 0.1.0 # 手动发布到 API
node scripts/generate-update-info.mjs win32 personal 0.1.0 # 重新生成 info
node build/scripts/upload-oss.mjs win32 0.1.0 # 手动上传 OSS
node build/scripts/publish-release.mjs win32 0.1.0 # 手动发布到 API
node build/scripts/generate-update-info.mjs win32 0.1.0 # 重新生成 info
```
---
@@ -91,52 +99,58 @@ node scripts/generate-update-info.mjs win32 personal 0.1.0 # 重新生成 info
```
ele-heixiu/
├ build.mjs # 构建总管
├ CHANGELOG.md # 更新日志
├ UpdateA.md # 发布手册(后端 API / 签名 / 发版流程)
├ package.json # 项目配置
electron-builder.json5 # 打包配置
electron/ # Electron 主进程
│ ├ main.ts # 入口
├ preload.ts # 预加载脚本
│ └ main/
├ updater.ts # 自动更新模块
├ menu/ # 菜单
└ utils/ # 工具函数
├ src/ # 渲染进程
├ App.tsx # 根组件
├ main.tsx # 渲染入口
├ components/ # 组件
│ ├ navbar/ # 自定义导航栏
│ └ LegalTextModal.tsx # 协议弹窗
├ pages/
└ login/ # 登录 / 注册
├ hooks/ # Hooks
│ ├ use-theme.tsx # 主题切换
│ ├ use-updater.ts # 更新状态
│ │ └ ...
├ theme/ # 主题配置
│ ├ tokens.ts # 设计令牌
│ ├ globals.css # Tailwind + CSS 变量
│ │ └ adapters/ # Ant Design 适配
├ services/ # API 服务axios
├ utils/ # 工具函数
└ assets/ # 静态资源
├ shared/ # 主进程 & 渲染进程共享
├ types/ # 类型定义
├ constants/ # 常量
└ utils/ # 通用工具
├ scripts/ # 构建辅助脚本
├ clean.mjs # 清理产物
├ generate-update-info.mjs # 生成 API 信息 JSON
├ upload-oss.mjs # OSS 上传
└ publish-release.mjs # 发布到 API
└ release/ # 构建产物
└ {version}/
├ xxx-Setup.exe
└ xxx-update-info.json
── build/ # 构建、打包与分发系统
│ ├── build.mjs # 构建总管
│ ├── electron-builder.js # electron-builder 配置
│ └── scripts/ # 构建辅助脚本6 个)
── CHANGELOG.md # 更新日志
── UpdateA.md # 发布手册
├── package.json # 项目配置
├── electron/ # Electron 主进程
├── main.ts # 入口:窗口创建 / IPC 注册
├── preload.ts # 预加载脚本
└── main/
├── logger.ts # 日志核心
├── updater.ts # 自动更新
├── net-request.ts # HTTP 请求封装
├── menu/ # 系统菜单
├── ipc/ # IPC handlerlog/safe-storage/storage/canvas
└── utils/ # 平台判断 / 图标
├── src/ # 渲染进程React 19 + Vite
├── app/ # 应用壳
│ ├── App.tsx # 根组件
│ ├── main.tsx # 渲染入口
├── providers/ # 全局 ProviderApp/Theme/Settings
│ └── layout/ # Layout.tsx + PageDispatcher.tsx
├── modules/ # 7 个业务模块VCHSM 五层架构)
│ ├── navbar/ # 导航栏 UI 壳
├── announcement/ # 公告Badge + 轮询缓存)
│ ├── auth/ # 认证(登录/注册/密码/Token
│ ├── home/ # 主工作区(左/中/右 三栏)
│ ├── account/ # 账户与支付6 子功能)
│ │ ├── canvas/ # 无限画布 + 项目管理
│ └── settings/ # 应用设置
└── shared/ # 跨模块共享
├── components/ # 通用 UI
│ ├── hooks/ # 全局 Hooks
├── services/ # HTTP 客户端
├── utils/ # 工具函数bus/env/...
├── infrastructure/ # 本地加密数据库
└── theme/ # 主题系统
├── shared/ # 主进程 & 渲染进程共享(@shared 别名)
│ ├── constants/ # IPC 通道 / 应用常量
├── types/ # Platform / Theme / Logging
│ └── utils/ # 脱敏 / 工具函数
├── release/ # 构建产物
└── build/ # 构建系统(见上)
```
> 详见 [PROJECT.md](./PROJECT.md) — 完整架构文档、VCHSM 五层说明及各模块文件清单。
---
## 环境变量