将我们的生态系统迁移到 Node 22
在 2025 年初,Electron 的 npm 生态系统仓库(在 @electron/
和 @electron-forge/
命名空间下)将迁移到 Node.js 22 作为最低支持版本。
这意味着什么?
过去,Electron npm 生态系统(Forge、Packager 等)中的软件包尽可能长时间地支持 Node 版本,即使在版本达到其生命周期结束 (EOL) 日期之后也是如此。这样做是为了确保我们不会使生态系统碎片化——我们理解许多项目依赖于旧版本的 Node,并且我们不希望冒着让这些项目搁浅的风险,除非有迫切的升级理由。
随着时间的推移,由于以下几个原因,使用 Node.js 14 作为我们的最低版本变得越来越困难
- 缺少官方 Node.js 14 macOS ARM64 构建版本,需要我们维护 CI 基础设施变通方法以提供完整的测试覆盖率。
- 上游软件包依赖项的
engines
要求已经向前发展,使得通过依赖项升级越来越难以解决供应链安全问题。
此外,较新版本的 Node.js 包含了许多我们想要利用的改进,例如运行时原生通用实用程序(例如 fs.glob
和 util.parseArgs
)以及全新的内置模块(例如 node:test
, node:sqlite
)。
为何现在升级?
在 2024 年 7 月,Electron 的生态系统工作组决定将所有软件包升级到最早的 Node 版本,在该版本中将支持同步 ESM 图的 require()
(请参阅 nodejs/node#51977 和 nodejs/node#53500),在该版本达到其 LTS 日期之后的未来某个时间点。
我们已决定将更新时间设置为 2025 年 1 月/2 月。在此升级发生后,Node 22 将成为现有生态系统软件包中支持的最低版本。
我需要采取什么行动?
我们将努力尽可能保持兼容性。但是,为了确保最佳支持,我们鼓励您将应用程序升级到 Node 22 或更高版本。
请注意,项目中运行的 Node 版本与嵌入到当前 Electron 版本中的 Node 版本无关。
下一步是什么
如果您有任何问题或疑虑,请随时写信给我们 info@electronjs.org。您还可以在我们的官方 Electron Discord 中找到社区支持。