Files
ele-HeiXiu/README.md
YoungestSongMo 337d6c1205 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>
2026-06-29 18:41:07 +08:00

184 lines
8.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 船长·HeiXiu
> 桌面效率工作台 — Electron + React 19 + TypeScript + Ant Design + Tailwind CSS
---
## 技术栈
| 层 | 技术 |
|----|--------------------------------|
| 框架 | Electron 42 |
| 前端 | React 19 + TypeScript + Vite 8 |
| UI | Ant Design 6 + Tailwind CSS 4 |
| 主题 | 蓝紫渐变(亮色 / 暗色) |
| 更新 | 自定义 API + 阿里云 OSS |
| 打包 | electron-builder + NSIS |
---
## 快速开始
```bash
# 安装依赖
npm install
# 开发模式Electron + HMR
npm run dev
# 打包Windows 个人版)
npm run build:win
```
---
## 构建命令
### 打包
```bash
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/build.mjs`
所有打包命令最终调用 `build/build.mjs`,支持灵活组合操作:
```bash
# 查看帮助
node build/build.mjs --help
# 仅打包
node build/build.mjs --win
# 打包 + 上传 OSS + 发布到 API
node build/build.mjs --win --upload --publish
# Beta 渠道全流程(清理 → 构建 → 签名 → 上传 → 发布)
node build/build.mjs --win --channel beta --all
# 带签名打包
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` | 全流程 |
| `--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 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
```
---
## 目录结构
```
ele-heixiu/
├── 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 五层说明及各模块文件清单。
---
## 环境变量
主进程加载顺序:`.env.{mode}``.env.local` → OS 环境变量 → 代码默认值。
| 变量 | 默认值 | 用途 |
|-------------------------|--------------------------------------------------------|---------------|
| `UPDATE_API_URL` | `https://www.heixiu.com` | 版本检查 API |
| `UPDATE_API_KEY` | — | 发布 API 鉴权 |
| `UPDATE_DOWNLOAD_BASE` | `https://heixiu.oss-cn-hangzhou.aliyuncs.com/releases` | OSS 下载基地址 |
| `OSS_ENDPOINT` | — | OSS endpoint |
| `OSS_BUCKET` | — | OSS bucket |
| `OSS_ACCESS_KEY_ID` | — | OSS AccessKey |
| `OSS_ACCESS_KEY_SECRET` | — | OSS Secret |
| `CSC_LINK` | — | 签名证书路径 |
| `CSC_KEY_PASSWORD` | — | 签名证书密码 |
| `VITE_API_BASE_URL` | `http://8.160.179.64:8000`dev | 业务 API 基地址 |
> **`.env.local`**(不进 git用于个人特殊配置如打包后覆盖 `UPDATE_API_URL` 指向本地测试服务器。
---
## 相关文档
| 文档 | 面向 | 内容 |
|--------------------------------------------------|-------|-----------------------|
| [PROJECT.md](./PROJECT.md) | 开发者 | 技术架构、更新系统、环境变量架构、测试流程 |
| [UpdateA.md](./UpdateA.md) | 前端发版 | 构建命令、发版流程、代码签名 |
| [test-server/README.md](./test-server/README.md) | 后端程序员 | API 规格、数据库表结构、实现清单 |