为什么选择 Electron Forge
概述 Forge 及其在发布 Electron 应用中的作用。
动机
应用程序打包和分发一直都在 Electron 核心框架之外处理。在 Electron 作为 Atom 编辑器 的一部分的早期阶段,应用程序开发人员通常通过手动编辑 Electron 二进制文件来准备应用程序以进行分发。
从那时起,Electron 社区开发了一个丰富的工具生态系统来处理 Electron 应用程序分发的每个任务,包括
应用程序打包 (
electron-packager
)代码签名(例如
@electron/osx-sign
)创建特定于平台的安装程序(例如
electron-winstaller
或electron-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 有两个主要优势
Forge 在 Electron 支持应用程序构建的新功能后即可立即获得这些功能(例如 ASAR 完整性 或 通用 macOS 构建)。这些功能是考虑到第一方 Electron 工具构建的,因此 Forge 在它们发布后即可立即获得。
Forge 的多软件包架构使其更易于理解和扩展。由于 Forge 由许多具有明确职责的小型软件包组成,因此更容易跟踪代码流程。此外,其可扩展的 API 设计意味着您可以为高级用例编写自己的构建逻辑,与提供的配置选项分开。
上次更新