介绍 Electron Forge 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 的功能对等,并且代码变更已大大放缓,使该工具已准备好被广泛采用。
对于 5 及以下版本,Electron Forge 发布到 npm 上的 electron-forge
包。 从 v6 重写开始,Forge 被构建为一个具有许多较小项目的 monorepo 项目。
官方支持
从历史上看,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
- npm
yarn create electron-app my-app --template=webpack
cd my-app
yarn start
npm init electron-app@latest my-app -- --template=webpack
cd my-app
npm start
该脚本将在 my-app
文件夹中创建一个 Electron 项目,该项目具有完整的 JavaScript 捆绑和预配置的构建管道。
有关更多信息,请参见 Forge 文档中的 入门 指南。
上面的代码段使用了 Forge 的 Webpack 模板,我们建议将其作为新的 Electron 项目的起点。 该模板围绕 @electron-forge/plugin-webpack
插件构建,该插件以几种方式将 webpack 与 Electron Forge 集成在一起,包括
- 通过 webpack-dev-server 增强本地开发流程,包括对渲染器中 HMR 的支持;
- 在应用程序打包之前处理 webpack 捆绑包的构建逻辑; 和
- 在 webpack 捆绑过程中添加对 Native Node 模块的支持。
如果您需要 TypeScript 支持,请考虑改用 Webpack + TypeScript 模板。
导入现有项目
Electron Forge CLI 还包含用于现有 Electron 项目的导入命令。
- Yarn
- npm
cd my-app
yarn add --dev @electron-forge/cli
yarn electron-forge import
cd my-app
npm install --save-dev @electron-forge/cli
npm exec --package=@electron-forge/cli -c "electron-forge import"
当您使用 import
命令时,Electron Forge 将添加一些核心依赖项并创建一个新的 forge.config.js
配置。 如果您有任何现有的构建工具(例如 Electron Packager、Electron Builder 或 Forge 5),它将尝试迁移尽可能多的设置。 您现有的某些配置可能需要手动迁移。
手动迁移详细信息可以在 Forge 导入文档 中找到。 如果您需要帮助,请访问 我们的 Discord 服务器!
为什么要切换到 Forge?
如果您已经拥有用于打包和发布 Electron 应用程序的工具,那么采用 Electron Forge 带来的好处仍然可能超过初始切换成本。
我们认为使用 Forge 有两个主要好处
-
Forge 会在 Electron 中支持应用程序构建的新功能后立即收到这些功能。 在这种情况下,您无需自己连接新的工具支持,也无需等待其他软件包最终实现该支持才能升级。 对于最近的示例,请参见 macOS 通用二进制文件 和 ASAR 完整性检查。
-
Forge 的多包架构使其易于理解和扩展。 由于 Forge 由许多职责明确的较小包组成,因此更容易遵循代码流程。 此外,Forge 的可扩展 API 设计意味着您可以编写自己的附加构建逻辑,与提供的高级用例配置选项分开。 有关编写自定义 Forge 插件、maker 和发布者的更多详细信息,请参见文档的 扩展 Electron Forge 部分。
重大更改
Forge 6 在 beta 阶段花费了很长时间,其发布节奏逐渐放缓。 但是,我们在 2022 年下半年加快了开发速度,并使用最近的几个版本在 v6.0.0 稳定版发布之前推送了一些最终的重大更改。
如果您是 Electron Forge 6 beta 用户,请参见 v6.0.0 GitHub 版本说明,以获取在最近的 beta 版本(>=6.0.0-beta.65
)中所做的重大更改的列表。
可以在存储库的 CHANGELOG.md 中找到更改和提交的完整列表。
提交您的反馈!
告诉我们您需要什么! Electron Forge 团队一直在努力构建项目,以更好地满足其用户的需求。
您可以通过提交功能请求、发布 问题 或只是让我们知道您的反馈来帮助我们改进 Electron Forge! 您也可以加入 官方 Electron Discord 服务器,其中有一个专门的 Electron Forge 讨论频道。
如果您想在 https://electronforge.cn 上提供有关 Forge 文档的任何反馈,我们有一个与 electron-forge/electron-forge-docs 存储库同步的 GitBook 实例。