打包你的应用
import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
:::info 跟随教程
这是 Electron 教程的第 5 部分。
:::
学习目标¶
在教程的这一部分中,我们将介绍如何使用 Electron Forge 打包和分发你的应用的基础知识。
使用 Electron Forge¶
Electron 的核心模块中并没有内置用于打包和分发的工具。一旦你在开发模式下拥有一个可运行的 Electron 应用,你就需要使用额外工具来创建一个可分发给用户的打包应用(也称为可发行版本)。可发行版本可以是安装程序(例如 Windows 上的 MSI),也可以是便携式可执行文件(例如 macOS 上的 .app)。
Electron Forge 是一款一体化工具,负责处理 Electron 应用的打包和分发。在底层,它将许多现有的 Electron 工具(例如 [@electron/packager][]、[@electron/osx-sign][]、[electron-winstaller][] 等)组合到一个统一界面中,因此你不必担心将它们全部串联起来。
将项目导入 Forge¶
你可以在项目的 devDependencies 中安装 Electron Forge 的 CLI,并使用便捷的转换脚本导入现有项目。
转换脚本完成后,Forge 应该会向你的 package.json 文件添加一些脚本。
//...
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make"
},
//...
:::info CLI 文档
有关 make 和其他 Forge API 的更多信息,请参阅 [Electron Forge CLI 文档][]。
:::
你还会注意到,你的 package.json 现在在 devDependencies 下安装了更多包,并且有一个新的 forge.config.js 文件,它导出一个配置对象。你应该会在预置配置中看到多个 maker(生成可发行应用包的包),每个目标平台各有一个。
创建可发行版本¶
要创建可发行版本,请使用你项目的新 make 脚本,它会运行 electron-forge make 命令。
```sh npm2yarn npm run make
这个 `make` 命令包含两个步骤:
1. 它首先会在底层运行 `electron-forge package`,将你的应用代码与 Electron 二进制文件打包在一起。打包后的代码会生成到一个文件夹中。
1. 然后,它会使用这个打包后的应用文件夹,为每个已配置的 maker 创建一个独立的可发行版本。
脚本运行后,你应该会看到一个 `out` 文件夹,其中既包含可发行版本,也包含一个装有打包后应用代码的文件夹。
```plain title='macOS output example'
out/
├── out/make/zip/darwin/x64/my-electron-app-darwin-x64-1.0.0.zip
├── ...
└── out/my-electron-app-darwin-x64/my-electron-app.app/Contents/MacOS/my-electron-app
out/make 文件夹中的可发行版本现在应该可以直接启动!你已经创建了第一个打包好的 Electron 应用。
:::tip 可发行版本格式
可以配置 Electron Forge 以创建不同操作系统专属格式的可发行版本(例如 DMG、deb、MSI 等)。有关所有配置选项,请参阅 Forge 的 Makers 文档。
:::
:::tip 创建和添加应用图标
设置自定义应用图标需要在配置中添加一些内容。更多信息,请参阅 [Forge 图标教程][]。
:::
:::info 不使用 Electron Forge 进行打包
如果你想手动打包代码,或者只是想理解打包 Electron 应用背后的机制,请参阅完整的 [应用打包][] 文档。
:::
重要:对代码进行签名¶
为了向最终用户分发桌面应用,我们_强烈建议_你对 Electron 应用进行代码签名。代码签名是发布桌面应用的重要组成部分,也是教程最后一部分中自动更新步骤的必需项。
代码签名是一种安全技术,用于证明某个桌面应用来自已知来源。Windows 和 macOS 都有各自操作系统专属的代码签名系统,这些系统会使用户难以下载或启动未签名的应用。
在 macOS 上,代码签名在应用打包层面完成。在 Windows 上,则改为对可发行安装程序进行签名。如果你已经拥有 Windows 和 macOS 的代码签名证书,可以在 Forge 配置中设置你的凭据。
:::info
有关代码签名的更多信息,请参阅 Forge 文档中的 macOS 应用签名 指南。
:::
module.exports = {
packagerConfig: {
osxSign: {},
// ...
osxNotarize: {
tool: 'notarytool',
appleId: process.env.APPLE_ID,
appleIdPassword: process.env.APPLE_PASSWORD,
teamId: process.env.APPLE_TEAM_ID
}
// ...
}
}
module.exports = {
// ...
makers: [
{
name: '@electron-forge/maker-squirrel',
config: {
certificateFile: './cert.pfx',
certificatePassword: process.env.CERTIFICATE_PASSWORD
}
}
]
// ...
}
总结¶
Electron 应用需要打包后才能分发给用户。在本教程中,你将应用导入到 Electron Forge,并配置它来打包你的应用并生成安装程序。
为了让用户系统信任你的应用程序,你需要通过代码签名来数字证明该可分发包是真实且未被篡改的。一旦配置为使用你的代码签名证书信息,就可以通过 Forge 对你的应用进行签名。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron