将我们的生态系统迁移到 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 版本达到 LTS 日期后,将所有软件包升级到支持 require()
同步 ESM 图的最早 Node 版本(参见 nodejs/node#51977 和 nodejs/node#53500)。
我们已决定将该更新时间定在 2025 年 1 月/2 月。此升级完成后,Node 22 将成为现有生态系统软件包的最低支持版本。
我需要采取什么行动?
我们将努力尽可能地保持兼容性。然而,为确保获得最佳支持,我们鼓励您将应用程序升级到 Node 22 或更高版本。
请注意,您项目中运行的 Node 版本与您当前 Electron 版本中嵌入的 Node 版本无关。
下一步
如果您有任何疑问或疑虑,请随时给我们发邮件至 info@electronjs.org。您也可以在我们的官方 Electron Discord 中寻求社区支持。