跳至主要內容

將我們的生態系統遷移至 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:testnode:sqlite)。

為什麼現在升級?

在 2024 年 7 月,Electron 的生態系統工作組決定將所有套件升級到最早的 Node 版本,該版本將支援同步 ESM 圖形的 require() (請參閱 nodejs/node#51977nodejs/node#53500),在該版本達到其 LTS 日期之後的未來某個時間點。

我們已決定將該更新時間設定為 2025 年 1 月/2 月。在此升級發生後,Node 22 將會是現有生態系統套件中支援的最低版本。

我需要採取什麼行動?

我們會盡力保持盡可能多的相容性。但是,為了確保最佳的支援,我們鼓勵您將您的應用程式升級至 Node 22 或更高版本。

請注意,在您的專案中執行的 Node 版本與嵌入到您目前 Electron 版本中的 Node 版本無關。

下一步是什麼

如果您有任何問題或疑慮,請隨時寫信給我們 info@electronjs.org。您也可以在我們的官方 Electron Discord 中找到社群支援。