Appearance
为什么选择 Electron Forge
Forge 及其在发布 Electron 应用程序中的作用的概述
赋予动机
应用程序打包和分发一直在核心 Electron 框架之外处理。在 Electron 作为 Atom 编辑器的一部分的早期,应用程序开发人员通常通过手动编辑 Electron 二进制文件来准备他们的应用程序以进行分发。
从那时起,Electron 社区开发了一个丰富的工具生态系统来处理 Electron 应用程序分发的每项任务,包括:
- 应用程序打包 (
electron-packager
) - 代码签名(例如
@electron/osx-sign
) - 创建特定于平台的安装程序(例如
electron-winstall
或erelectron-installer-dmg
)。 - 本机 Node.js 模块重新构建 (
electron-rebuild
) - 通用 macOS 版本 (
@electron/universal
)
尽管这些单一用途的软件包已经成熟且可用于生产,但应用程序开发人员需要了解每个软件包的作用,并编写自己的脚本以将这些软件包粘合到构建管道中。这个过程需要研究和迭代,并且可能会让 Electron 新手感到困惑。
价值主张
Electron Forge 是一个一体化的解决方案,它统一了这个支离破碎的生态系统。使用 Forge,您可以创建一个构建管道,以最少的配置将您的应用程序从开发阶段引入分发阶段。
Forge 在构建时还考虑了高级用例 - 您可以使用自定义插件、制作者或发布者添加所需的任何构建逻辑。有关更多详细信息,请参阅文档的扩展 Electron Forge 部分。
Forge 与 Builder
Electron Forge 可以被认为是 Electron Builder 的替代品,它实现了相同的应用程序构建和发布用例。
这两个项目在理念上的主要区别在于,Electron Forge 专注于将现有的第一方工具合并到单个构建管道中,而 Builder 则为大多数构建任务重写自己的内部逻辑。
我们认为使用 Forge 有两个主要优势:
- 一旦 Electron 支持这些新功能(例如 ASAR 完整性或通用 macOS 构建),Forge 就会收到用于应用程序构建的新功能。这些功能是在考虑第一方 Electron 工具的情况下构建的,因此 Forge 会在它们发布后立即收到它们。
- Forge 的多包架构使其更易于理解和扩展。由于 Forge 由许多具有明确职责的较小包组成,因此更容易遵循代码的流程。此外,其可扩展的 API 设计意味着您可以编写自己的构建逻辑,独立于为高级用例提供的配置选项。