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