Skip to content

Electron - 应用打包

将你的 Electron 应用打包成可分发格式是发布给用户前的关键一步。由于 Electron 支持跨平台开发,你会需要能帮助你在 Windows、macOS 和 Linux 上打包应用的工具。

一个常用的工具是 electron-packager。它将你的 Electron 应用源代码与 Electron 运行时捆绑在一起,创建特定操作系统的软件包(例如 macOS 的 .app、Windows 的 .exe)。

对于更高级的打包功能,包括自动更新(auto-updates)和各种安装程序格式,electron-builder 是另一个优秀且广泛使用的选择。本教程将侧重介绍 electron-packager,因为它上手简单。

electron-packager 可以在以下主机平台(host platforms)上运行:

  • Windows (win32, x64)
  • macOS (darwin, arm64, x64 - 曾用名 OS X)
  • Linux (x64, armv7l, arm64)

它可以为以下目标平台(target platforms)生成可执行文件/捆绑包:

  • Windows (win32, x64, arm64)
  • macOS (darwin, arm64, x64) / Mac App Store (mas, arm64, x64)
  • Linux (x64, armv7l, arm64)

将 electron-packager 安装为项目的开发依赖(development dependency):

npm install electron-packager --save-dev

使用 --save-dev 可以确保 electron-packager 被列在你的 package.json 文件中,并且在任何人克隆你的项目并运行 npm install 时都能获取到。

你可以在命令行中运行 electron-packager。基本的命令结构如下:

npx electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> [optional flags...]

其中:

  • <sourcedir>: 你的应用源代码路径(例如 . 表示当前目录)。
  • <appname>: 你的应用名称。
  • --platform: 目标平台(例如 win32、darwin、linux)。
  • --arch: 目标架构(例如 x64、arm64)。
  • [optional flags...]: 其他可选参数,例如 --out 指定输出目录,--icon 指定应用图标等。

例如,要在当前目录 (.) 中将名为 MyApp 的应用打包为 64 位 Windows 应用:

npx electron-packager . MyApp --platform=win32 --arch=x64 --out=dist

此命令会执行以下操作:

  • 查找或下载项目所需的正确 Electron 版本。
  • 将你的应用与 Electron 捆绑成可执行格式。
  • 将打包好的应用放置在类似 dist/MyApp-win32-x64 的文件夹中。

你可以使用 --all 代替 --platform 和 --arch 来构建适用于你的主机操作系统(host OS)的所有有效组合,或者省略它们以构建适用于你当前主机平台和架构的版本。

通常将打包命令添加到你的 package.json 脚本中以便使用:

// 在 package.json 中
"scripts": {
"start": "electron .",
"package-win": "electron-packager . MyApp --platform=win32 --arch=x64 --out=dist --overwrite",
"package-mac": "electron-packager . MyApp --platform=darwin --arch=arm64 --out=dist --overwrite"
// 根据需要添加其他平台/架构的脚本
}

然后你可以运行,例如 npm run package-win。

有关详细选项和高级用法,请参阅 GitHub 上的 electron-packager 官方文档。