一、为何需要打包?
Electron 核心模块不包含打包工具 ,开发模式的应用必须通过额外工具转换为可分发包(Distributable),例如:
- Windows 的
.msi
安装包 - macOS 的
.dmg
或.app
便携包 - Linux 的
.deb
等格式
二、Electron Forge 工作流(推荐方案)
整合了
@electron/packager
、@electron/osx-sign
等工具链
-
安装与项目导入
在项目中添加 CLI 并执行转换:
bashnpm install --save-dev @electron-forge/cli npx electron-forge import
关键变化:
-
package.json
新增脚本命令:json"scripts": { "start": "electron-forge start", "package": "electron-forge package", "make": "electron-forge make" }
-
生成
forge.config.js
配置文件(含多平台 Maker 预设)
-
-
生成可分发包
执行构建命令:
bashnpm run make # 内部自动执行 package → make 两步
输出结构:
out/ ├── make/ # 分发安装包(如 ZIP/DMG) └── packaged-app/ # 含 Electron 二进制的应用包
*示例:macOS 生成
my-electron-app.app
和.zip
安装包 * -
多平台格式支持
在
forge.config.js
配置 Makers 可定制输出格式:- Windows: Squirrel (MSI), WiX
- macOS: DMG, PKG
- Linux: deb, rpm
*详见 Makers 文档 *
三、代码签名(关键安全步骤)
必须操作:否则系统将阻止安装/运行!
-
macOS :签名应用包(
.app
)js// forge.config.js packagerConfig: { osxSign: {}, osxNotarize: { // 公证配置 appleId: process.env.APPLE_ID, appleIdPassword: process.env.APPLE_PASSWORD } }
-
Windows :签名安装包(
.msi
)jsmakers: [{ name: '@electron-forge/maker-squirrel', config: { certificateFile: './cert.pfx', certificatePassword: process.env.CERT_PWD } }]
*注:证书需提前申请,敏感信息使用环境变量传递 *
四、进阶配置
- 应用图标
通过 Forge 的 图标教程 添加自定义图标 - 手动打包方案
参考 Application Packaging 文档(非 Forge 流程)
技术依据:Electron 官方文档《Packaging Your Application》