跳至主要内容

将我们的生态系统迁移到 Node 22

·2 分钟阅读

在 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.globutil.parseArgs)和全新的内置模块(例如,node:test, node:sqlite)。

为什么要立即升级?

在 2024 年 7 月,Electron 的生态系统工作组决定将所有软件包升级到最早支持同步 ESM 图的 require() 的 Node 版本(参见 nodejs/node#51977nodejs/node#53500),在该版本达到其 LTS 日期之后的未来某个时间点。

我们已决定将该更新时间设置为 2025 年 1 月/2 月。在此升级发生后,Node 22 将成为现有生态系统软件包中支持的最低版本。

我需要采取什么行动?

我们将努力尽可能保持兼容性。但是,为了确保获得最佳支持,我们鼓励您将应用程序升级到 Node 22 或更高版本。

请注意,您项目中运行的 Node 版本与嵌入到当前 Electron 版本中的 Node 版本无关。

下一步是什么?

如果您有任何问题或疑虑,请随时通过 [email protected] 联系我们。您也可以在我们的官方 Electron Discord 中找到社区支持。