將我們的生態系統遷移至 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 中找到社群支援。