YoungestSongMo 136a17c0bf feat: 任务列表右键菜单回调 + 主进程下载 + sharp 缩略图 + IPC 精简重构
- 任务右键菜单:实现打开输出目录(inputs/outputs/.cache 结构)、
    复制资源链接、重新编辑、再次生成、拉取结果、重新下载、收藏、删除记录
  - 主进程下载:通过 Electron net 模块绕过 CORS,支持 CDN 媒体文件下载
  - sharp 缩略图:替换 nativeImage,支持 4K/8K+ 大尺寸素材的流式处理
  - IPC 精简:40+ 冗余通道 → 15 个分组通道,移除未使用的 preload 桥接方法
  - 任务存储:新增收藏字段、schema 迁移、task-store 持久化
  - 清理废弃模块:canvas-ipc / updater / request / pricing

refactor: IPC/Preload/Services 模块化拆分 — 单一职责 + 向后兼容

  主要变更:
  - shared/constants/ipc-channels.ts → ipc/ 模块 (base/storage/canvas/updater)
  - electron/preload.ts → preload/ 模块 (base/safe-storage/file-storage/canvas)
  - electron/main/ipc/canvas-ipc.ts → canvas/ 模块 (types/walk/sidecar/mime/thumbnail)
  - electron/main/ipc/storage-ipc.ts → 提取 utils/ (path/download/thumbnail)
  - electron/main/updater.ts → updater/ 模块 (provider/platform-updaters)
  - src/services/request.ts → request/ 模块 (token/interceptors/methods)
  - src/shared/utils/pricing.ts → pricing/ 模块 (types/helpers/format/calculate/fields)
  - src/modules/home/center/views/ModelInputForm.tsx → 提取 utils + DependentFormItem

  架构优化:
  - 所有拆分均保持向后兼容(旧导入路径仍可用)
  - TypeScript 编译通过 ✓
  - 每个模块单一职责,平均 ~130 行
2026-07-03 11:13:36 +08:00

船长·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

快速开始

# 安装依赖
npm install

# 开发模式Electron + HMR
npm run dev

# 打包Windows 个人版)
npm run build:win

构建命令

打包

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,支持灵活组合操作:

# 查看帮助
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 代码签名(需配合 --certCSC_LINK 环境变量)
--upload 上传安装包到 OSS
--publish POST 版本信息到后端 API
--all 全流程
--edition 版本类型personal默认/ enterprise
--channel 发布渠道stable默认/ beta / alpha

版本管理

npm run version:patch            # 0.0.28 → 0.0.29
npm run version:pre-beta         # 0.0.29 → 0.0.30-beta.1

工具命令

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 — 完整架构文档、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:8000dev 业务 API 基地址

.env.local(不进 git用于个人特殊配置如打包后覆盖 UPDATE_API_URL 指向本地测试服务器。


相关文档

文档 面向 内容
PROJECT.md 开发者 技术架构、更新系统、环境变量架构、测试流程
UpdateA.md 前端发版 构建命令、发版流程、代码签名
test-server/README.md 后端程序员 API 规格、数据库表结构、实现清单
Description
客户端重构版本
Readme 2.8 MiB
Languages
TypeScript 84.9%
JavaScript 12.2%
CSS 2.6%
HTML 0.3%