为什么选择 Electron Forge

概述 Forge 及其在发布 Electron 应用中的作用。

动机

应用程序打包和分发一直都在 Electron 核心框架之外处理。在 Electron 作为 Atom 编辑器 的一部分的早期阶段,应用程序开发人员通常通过手动编辑 Electron 二进制文件来准备应用程序以进行分发。

从那时起,Electron 社区开发了一个丰富的工具生态系统来处理 Electron 应用程序分发的每个任务,包括

  • 应用程序打包 (electron-packager)

  • 代码签名(例如 @electron/osx-sign)

  • 创建特定于平台的安装程序(例如 electron-winstallerelectron-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 有两个主要优势

  1. Forge 在 Electron 支持应用程序构建的新功能后即可立即获得这些功能(例如 ASAR 完整性通用 macOS 构建)。这些功能是考虑到第一方 Electron 工具构建的,因此 Forge 在它们发布后即可立即获得。

  2. Forge 的多软件包架构使其更易于理解和扩展。由于 Forge 由许多具有明确职责的小型软件包组成,因此更容易跟踪代码流程。此外,其可扩展的 API 设计意味着您可以为高级用例编写自己的构建逻辑,与提供的配置选项分开。

上次更新