第 13 章 · 打包、调试与最佳实践
13.1 打包:electron-builder
配置在 electron-builder.yml:
appId: com.openbudy.app
productName: OpenBudy
directories:
output: release
files:
- dist/ # 渲染进程产物(Vite build)
- dist-electron/ # 主进程 + preload 产物
mac:
category: public.app-category.productivity
target:
- dmg
- zip
win:
target: nsis
linux:
target: AppImage
一条命令完成「构建两端 + 打包安装器」:
pnpm electron:build
# 内部执行:vite build(产出 dist/ + dist-electron/)→ electron-builder
打包前的检查清单
pnpm lint # tsc --noEmit 全量类型检查
pnpm build # 验证渲染进程可构建
pnpm electron:build
常见打包坑:
| 症状 | 原因与解法 |
|---|---|
| 打开后白屏 | loadFile 路径与 asar 内结构不符;检查 mainWindow.loadFile(path.join(__dirname, '../dist/index.html')) |
| preload 未生效 | files 列表漏了 dist-electron/ |
| 生产模式无 CSP / CSP 拦截资源 | 第 3 章的 CSP 是按 file:// 判断的,确认生产分支逻辑 |
| 体积过大 | files 精确列出产物目录,别把 node_modules 全打进去(依赖已 bundle 进产物) |