Appearance
构建生命周期
Forge 如何将您的应用代码从开发阶段转变为分发阶段。
一旦你的应用程序准备好发布,Electron Forge 就可以处理剩下的事情,以确保它到达你的用户手中。Electron Forge 的完整构建流程可以分为三个较小的步骤:
这些步骤中的每一个都是通过 Forge 的electron-forge
命令行界面公开的单独命令,通常映射到 package.json 文件中的脚本。
级联构建步骤
运行这些任务中的每一个也将按顺序运行前面的任务(即,运行electron-forge publish
脚本将首先运行package
和make
,并作为先决条件步骤)。
第 1 步:打包
TIP
有关命令用法,请参阅软件包 CLI 命令文档。
在 Package 步骤中,Forge 使用 Electron Packager 打包您的应用程序。这意味着为目标操作系统创建一个可执行捆绑包(例如macOS上的.app
或Windows上的.exe
)。
此步骤还执行一些支持任务:
- 在 macOS 上处理代码签名和公证。
- 为应用程序的 Electron 版本重新构建原生 Node 附加组件。
- 处理 Windows 和 macOS 上的自定义应用程序图标。
默认情况下,运行 Package 步骤将仅为计算机的平台和体系结构创建打包的应用程序。
打包应用代码
请注意,如果没有额外的配置,Forge 不会在 Package 步骤中对应用程序代码执行任何捆绑以进行生产。
如果你需要为渲染器或主进程代码执行任何自定义 JavaScript 构建任务(例如,与 Parcel 或 webpack 的模块捆绑),请参阅下面的使用生命周期钩子部分。
TIP
在 Package 步骤之后,打包的应用程序将在目录/out/
中可用。
第 2 步:制作
TIP
有关命令用法,请参阅 Make CLI 命令文档。
Forge 的 Make 步骤获取上一个 Package 步骤的捆绑可执行输出,并从中创建 “distributables”。Distributables 是指您想要分发给用户的任何输出格式,无论是特定于操作系统的安装程序(例如.dmg
或.msi
) 或捆绑包的简单压缩存档(例如.zip
)
您可以通过将 Maker 添加到 Forge 配置来选择要构建的可分发对象。
默认情况下,运行 Make 步骤将仅运行针对您计算机的平台和体系结构的 Maker。
TIP
在 Make 步骤之后,将在项目文件夹/out/make/
中为打包的应用程序生成可分发的存档或安装程序
第 3 步:发布
TIP
有关命令用法,请参阅 Publish CLI 命令文档。
Forge 的 Publish 步骤从 Make 步骤中获取可分发的构建构件,并上传以分发给应用程序的最终用户(例如,分发到 GitHub 版本或 AWS S3 静态存储)。发布是 Electron Forge 管道中的一个可选步骤,因为 Make 步骤中的工件已经是最终格式。
您可以通过将 Publishers 添加到您的 Forge 配置来选择要定位的平台。
TIP
在 Publish 步骤之后,您的应用程序可分发对象将可供用户下载。
使用生命周期钩子
您的 Electron 应用程序可能具有自定义构建需求,而上述最基本的 Forge 管道无法处理这些需求。为了解决这个问题,Electron Forge 在构建过程的各个阶段暴露了回调钩子。
这些钩子可用于实现应用程序所需的自定义逻辑。例如,您可以使用挂钩premake
在 Package 和 Make 步骤之间执行操作。
TIP
有关 Forge 钩子和使用示例的完整列表,请参阅 Hook 文档。
如果你想共享一个特定的构建钩子逻辑序列,你可以将你的钩子代码模块化成一个插件。例如,这就是 Forge 的 Webpack 插件的工作原理。有关创作自定义插件的更多详细信息,请参阅编写插件指南。
跨平台构建系统
默认情况下,Electron Forge 只会为运行它的操作系统构建您的应用程序。以不同的操作系统为目标平台(例如,从 macOS 构建 Windows 应用程序)有很多注意事项。
如果您无法访问 Windows、macOS 和 Linux 计算机,我们强烈建议您在支持所有这些平台的持续集成平台(例如 CircleCI 或 GitHub Actions)上创建构建管道。有关 CI 构建的实际示例,请参阅 Electron Fiddle 的 CircleCI 管道。