三个打包脚本原先各写各的输出目录,现在一律直接落在仓库根 releases/<组件>/<版本>/,分层固定为安装包/免安装/构建中间;dist-win 用 --config.directories.output 覆盖 electron-builder 的目录后再整理,显式传入时不覆盖。插件侧顺手修掉一个既有 bug:原先 rmSync 整个组件目录,重打一次就把上一版的留档抹掉,现在只清当前版本目录。verify-packaged 的 --exe 默认值跟着改到新落点。 deploy/verify-linux.sh 修掉管道在 pipefail 下的 SIGPIPE 误判(命中被算成失败);CI workflow 的出包与上传路径同步;electron-builder.yml 显式指定安装包图标。 website/ 是产品官网(纯静态、无构建步骤,不进 pnpm workspace),含 beUI 动效 token 与实机留档图;客户端冒烟相应加了采集留档图用的外观开关。
65 lines
2.8 KiB
YAML
65 lines
2.8 KiB
YAML
appId: com.classhelper.desktop
|
||
productName: 班级小助手
|
||
copyright: Copyright © 2026 Class Helper
|
||
|
||
# 语言包:Electron 发行版自带 55 个 `locales/*.pak`(实测 48.3MB 未压缩 / 约 10MB 压缩后),
|
||
# 而本应用界面文案只有中文,其余 54 个语言包纯属白占体积(`win-unpacked` 372MB → 约 324MB)。
|
||
# 这是 electron-builder 的官方选项:`app-builder-lib` 的 removeUnusedLanguagesIfNeeded()
|
||
# 会对 `locales/*.pak` 做精确匹配删除,只留 `zh-CN.pak`(0.6MB)。
|
||
#
|
||
# 注意:**不要**为了继续压体积去删 dxcompiler/vk_swiftshader/d3dcompiler_47 这些 GPU 回退组件,
|
||
# 或 LICENSES.chromium.html —— 前者是教室老显卡/虚拟机上的 D3D12/D3D11/Vulkan 渲染回退,
|
||
# 后者是 Chromium 的许可证声明,合计只能再省约 12MB,风险不成比例。
|
||
# 另外安装包有硬底:`班级小助手.exe`(就是 electron.exe)压缩后本身就有 85~90MB,别再指望压到 60MB。
|
||
electronLanguages:
|
||
- zh-CN
|
||
|
||
directories:
|
||
# 这里的 output 只是 electron-builder 的兜底值:scripts/dist-win.mjs 会把它覆盖成
|
||
# releases/client/<版本>/(与服务端、插件同一约定)。直接手敲 electron-builder 才会落到这里。
|
||
output: release
|
||
buildResources: build
|
||
|
||
# 注意:这里**不要**加 afterPack 去改 appOutDir 的完整性标签。
|
||
# 归档内部的载荷标签不会被还原(装到正常位置拿到的是默认 Medium 文件),
|
||
# 而在打包前把 appOutDir 改成 Medium 会让 7za(自身带 Low 标签、进程被降到 Low)
|
||
# 因"不能向上读"而无法生成归档。交付物的标签统一在 scripts/dist-win.mjs 收尾时修正。
|
||
|
||
# 渲染进程产物已由 Vite 打包、主进程/preload 已由 esbuild 打包,
|
||
# 运行时不需要任何 node_modules(electron 模块由 Electron 运行时提供)。
|
||
files:
|
||
- dist/**/*
|
||
- package.json
|
||
- '!node_modules/**/*'
|
||
- '!**/*.map'
|
||
|
||
asar: true
|
||
# 没有原生模块,跳过 rebuild,避免不必要的 node-gyp 依赖
|
||
npmRebuild: false
|
||
compression: normal
|
||
removePackageScripts: true
|
||
|
||
win:
|
||
target:
|
||
- target: nsis
|
||
arch: [x64]
|
||
- target: portable
|
||
arch: [x64]
|
||
# 应用/安装包图标。**显式指定**而不是靠 electron-builder 的默认约定(默认找 build/icon.ico):
|
||
# 现在生效的是仓库根 build/classhelper.{ico,png}(设计导出、手工放入),
|
||
# 而 `pnpm icons` 那条 SVG 流水线只会重写 icon.*,两者不打架。
|
||
icon: build/classhelper.ico
|
||
artifactName: ${productName}-${version}-${arch}.${ext}
|
||
|
||
nsis:
|
||
oneClick: false
|
||
perMachine: false
|
||
allowToChangeInstallationDirectory: true
|
||
createDesktopShortcut: true
|
||
createStartMenuShortcut: true
|
||
shortcutName: 班级小助手
|
||
artifactName: ${productName}-${version}-${arch}-setup.${ext}
|
||
|
||
portable:
|
||
artifactName: ${productName}-${version}-${arch}-portable.${ext}
|