將我們的生態系統移至 Node 22
在 2025 年初,Electron 的 npm 生態系統儲存庫(在 @electron/
和 @electron-forge/
命名空間下)將移至 Node.js 22 作為最低支援版本。
這代表什麼意思?
過去,Electron npm 生態系統(Forge、Packager 等)中的套件在版本達到其生命週期終止 (EOL) 日期後,仍盡可能長時間地支援 Node 版本。這樣做的目的是確保我們不會使生態系統碎片化——我們理解許多專案依賴舊版本的 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 中找到社群支援。