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}