Electron - 应用打包
Electron - 应用打包
Section titled “Electron - 应用打包”将你的 Electron 应用打包成可分发格式是发布给用户前的关键一步。由于 Electron 支持跨平台开发,你会需要能帮助你在 Windows、macOS 和 Linux 上打包应用的工具。
一个常用的工具是 electron-packager。它将你的 Electron 应用源代码与 Electron 运行时捆绑在一起,创建特定操作系统的软件包(例如 macOS 的 .app、Windows 的 .exe)。
对于更高级的打包功能,包括自动更新(auto-updates)和各种安装程序格式,electron-builder 是另一个优秀且广泛使用的选择。本教程将侧重介绍 electron-packager,因为它上手简单。
electron-packager 支持的平台
Section titled “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
Section titled “安装 electron-packager”将 electron-packager 安装为项目的开发依赖(development dependency):
npm install electron-packager --save-dev使用 --save-dev 可以确保 electron-packager 被列在你的 package.json 文件中,并且在任何人克隆你的项目并运行 npm install 时都能获取到。
打包你的应用
Section titled “打包你的应用”你可以在命令行中运行 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 官方文档。