跳到主要内容

Electron Forge 6 简介

·阅读时长 6 分钟

我们很高兴地宣布 Electron Forge v6.0.0 现已发布!此版本标志着 Forge 自 2018 年以来的第一个主要版本,并将该项目从 electron-userland 移至 Github 上的 electron 主要组织。

继续阅读以了解新功能以及如何让您的应用程序采用 Electron Forge!

什么是 Electron Forge?

Electron Forge 是用于打包和分发 Electron 应用程序的工具。它将 Electron 的构建工具生态系统统一到一个可扩展的接口中,以便任何人都可以立即开始创建 Electron 应用程序。

突出功能包括

  • 📦 应用程序打包和代码签名
  • 🚚 可自定义的 Windows、macOS 和 Linux 安装程序 (DMG、deb、MSI、PKG、AppX 等)
  • ☁️ 用于云提供商的自动化发布流程 (GitHub、S3、Bitbucket 等)
  • ⚡️ 易于使用的 webpack 和 TypeScript 模板
  • ⚙️ 原生 Node.js 模块支持
  • 🔌 可扩展的 JavaScript 插件 API
进一步阅读

访问 为什么选择 Electron Forge 解释性文档,以详细了解 Forge 的理念和架构。

v6 中的新功能?

完全重写

从 v1 到 v5,Electron Forge 基于现已停止维护的 electron-compile 项目。Forge 6 是该项目的完全重写,具有新的模块化架构,可以扩展以满足任何 Electron 应用程序的需求。

在过去几年中,Forge v6.0.0-beta 已实现与 v5 的功能等效,并且代码 churn 已显着减缓,使该工具已准备好供大众采用。

不要安装错误的软件包

对于版本 5 及更低版本,Electron Forge 发布到 npm 上的 electron-forge 软件包。从 v6 重写开始,Forge 而是被构造为一个包含多个较小项目的单体仓库项目。

官方支持

历史上,Electron 维护人员对构建工具没有意见,将任务留给了各种社区软件包。但是,随着 Electron 作为一个项目不断成熟,新的 Electron 开发人员越来越难以理解构建和分发应用程序所需的工具。

为了帮助指导 Electron 开发人员完成分发流程,**我们已决定将 Forge 作为 Electron 的官方内置构建管道**。

在过去的一年中,我们一直在将 Forge 慢慢集成到官方 Electron 文档中,并且最近将 Forge 从其在 electron-userland/electron-forge 中的旧位置转移到 electron/forge 存储库中。现在,我们终于准备好将 Electron Forge 发布给大众了!

入门

初始化一个新的 Forge 项目

可以使用 create-electron-app CLI 脚本搭建一个新的 Electron Forge 项目。

yarn create electron-app my-app --template=webpack
cd my-app
yarn start

该脚本将在 my-app 文件夹中创建一个 Electron 项目,其中包含完整的 JavaScript 捆绑和预配置的构建管道。

有关更多信息,请参见 Forge 文档中的 入门 指南。

一流的 webpack 支持

上面的代码片段使用 Forge 的 Webpack 模板,我们建议将其作为新 Electron 项目的起点。此模板是围绕 @electron-forge/plugin-webpack 插件构建的,该插件以几种方式将 webpack 集成到 Electron Forge 中,包括

  • 使用 webpack-dev-server 增强本地开发流程,包括对渲染器中 HMR 的支持;
  • 在应用程序打包之前处理 webpack 捆绑包的构建逻辑;以及
  • 在 webpack 捆绑过程中添加对原生 Node 模块的支持。

如果您需要 TypeScript 支持,请考虑使用 Webpack + TypeScript 模板

导入现有项目

Electron Forge CLI 还包含用于导入现有 Electron 项目的导入命令。

cd my-app
yarn add --dev @electron-forge/cli
yarn electron-forge import

当您使用 import 命令时,Electron Forge 将添加一些核心依赖项并创建一个新的 forge.config.js 配置。如果您有任何现有的构建工具(例如 Electron Packager、Electron Builder 或 Forge 5),它将尝试迁移尽可能多的设置。您的一些现有配置可能需要手动迁移。

可在 Forge 的 导入文档 中找到手动迁移的详细信息。如果您需要帮助,请访问 我们的 Discord 服务器

为什么要切换到 Forge?

如果您已经拥有用于打包和发布 Electron 应用程序的工具,采用 Electron Forge 的优势仍然可能超过初始切换成本。

我们认为使用 Forge 有两大主要优势

  1. Forge 只要 Electron 支持新功能,就会接收应用程序构建的新功能。在这种情况下,您无需自行接入新的工具支持,也不必等到其他软件包最终实施该支持才能升级。有关最近示例,请参见 macOS 通用二进制文件ASAR 完整性检查

  2. Forge 的多包架构使其易于理解和扩展。由于 Forge 由许多具有明确责任的较小软件包组成,因此更容易跟踪代码流程。此外,Forge 的可扩展 API 设计意味着您可以为高级用例编写自己的额外构建逻辑,与提供的配置选项分开。有关编写自定义 Forge 插件、制造商和发布者的更多详细信息,请参见文档的 扩展 Electron Forge 部分。

重大更改

Forge 6 在测试版阶段花费了很长时间,并且其发布节奏逐渐放缓。但是,我们在 2022 年下半年加快了开发速度,并在过去几次发布中利用了这些机会,在 v6.0.0 稳定版发布之前进行了一些最终的重大更改。

如果您是 Electron Forge 6 测试版用户,请参阅 v6.0.0 GitHub 发布说明,以获取最近测试版(>=6.0.0-beta.65)中所做重大更改的列表。

可以在仓库的 CHANGELOG.md 中找到完整的更改和提交列表。

提交您的反馈!

告诉我们您需要什么!Electron Forge 团队一直在努力构建更适合用户的项目。

您可以通过提交功能请求、发布 问题 或只是告诉我们您的反馈来帮助我们改进 Electron Forge!您也可以加入我们 官方 Electron Discord 服务器,这里有一个专门用于 Electron Forge 讨论的频道。

如果您想对 Forge 文档 https://forge.electron.js.cn 上的任何内容进行反馈,我们有一个与 electron-forge/electron-forge-docs 仓库同步的 GitBook 实例。