Electron Forge 是 Electron apps 一体化的 打包和分发工具,及将开发好的 Electron 应用打包为可安装,可执行的文件,最终交付给终端用户的核心过程
如何打包(mac 为🌰)
- 安装 Electron Forge's CLI 到
devDependencies,并且使用脚本将项目导入到 Forge 中
js
// 安装 Electron Forge's CLI 到 `devDependencies`
npm install --save-dev @electron-forge/cli
// 将项目导入到 Forge 中
npx electron-forge import
一旦将项目导入到 Forge 的脚本完成了,Forge 将会添加一些脚本到 your package.json 中
js
//...
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make"
},
//...
- 创建分发文件
js
// 执行这个脚本的时候将会根据当前系统来打包对应的可运行文件,
// 比如 mac 在项目的 out/make/zip/darwin/arm64/$packageName-darwin-arm64-1.0.0.zip 中
pnpm run make
- 打开对应的文件夹,解压 zip 文件,双击文件即可


打包的问题
- 打包不同的格式来适应不同的机器
答:使用 GitHub Actions / CI 生成在不同的 runner 生成不同的包,比如 Windows 的就使用 Windows 的 runner
- 如何自定义 icon 答:直接参考 www.electronforge.io/guides/crea... ,需要注意的是要为不同的系统准备不同的 icon 后缀,配置的时候不要指定 icon 的后缀
js
// 比如我是将文件放到 public/images 中
public
- images
- icon.icns
- icon.xxx
// forge.config.js
module.exports = {
// ...
packagerConfig: {
icon: 'public/images/icon' // no file extension required
}
// ...
};

最终结果

- 怎么代码签名 代码签名是发布桌面应用程序的重要环节,并且在自动更新步骤中是必不可少的,需要去对应的系统申请不同的认证方式,macOS 的 TEAM_ID 需要钱,如有需要自行申请