Electron 20.0.0
Electron 20.0.0 已經發布!它包含 Chromium 104
、V8 10.4
和 Node.js 16.15.0
的升級。請閱讀以下內容以了解更多詳細資訊!
Electron 團隊很高興宣布 Electron 20.0.0 的發布!您可以使用 npm 透過 npm install electron@latest
安裝它,或從我們的 版本網站 下載。繼續閱讀以了解有關此版本的詳細資訊,並請分享您的任何意見回饋!
重要變更
新功能
- 在 Windows 上新增沉浸式深色模式。 #34549
- 新增面板式行為的支援。視窗可以浮動在全螢幕應用程式之上。 #34665
- 更新 Windows 控制項覆疊按鈕,使其在 Windows 11 上看起來和感覺更原生。 #34888
- 渲染器現在預設為沙箱化,除非指定
nodeIntegration: true
或sandbox: false
。 #35125 - 在使用 nan 建置原生模組時新增安全防護。 #35160
技術堆疊變更
- Chromium
104
- Node.js
16.15.0
- V8
10.4
破壞性變更與 API 變更
以下是 Electron 20 中引入的破壞性變更。有關這些變更和未來變更的更多資訊,請參閱 計畫中的破壞性變更 頁面。
預設已變更:預設情況下,沒有 nodeIntegration: true
的渲染器會沙箱化
先前,指定預載腳本的渲染器預設為非沙箱化。這表示預設情況下,預載腳本可以存取 Node.js。在 Electron 20 中,此預設值已變更。從 Electron 20 開始,渲染器預設會沙箱化,除非指定 nodeIntegration: true
或 sandbox: false
。
如果您的預載腳本不依賴 Node,則無需採取任何動作。如果您的預載腳本確實依賴 Node,請重構它們以從渲染器中移除 Node 用法,或為相關渲染器明確指定 sandbox: false
。
已修正:nan 原生模組中發生的自發性崩潰
在 Electron 20 中,我們變更了與原生模組相關的兩個項目
- V8 標頭現在預設使用
c++17
。此旗標已新增至 electron-rebuild。 - 我們修正了一個問題,即缺少 include 會導致依賴 nan 的原生模組中發生自發性崩潰。
為了獲得最佳穩定性,我們建議在重建原生模組時使用 node-gyp >=8.4.0 和 electron-rebuild >=3.2.9,特別是依賴 nan 的模組。請參閱 electron #35160 和 node-gyp #2497 以取得更多資訊。
已移除:Linux 上的 `.skipTaskbar`
在 X11 上,skipTaskbar
會將 _NET_WM_STATE_SKIP_TASKBAR
訊息傳送至 X11 視窗管理員。Wayland 沒有直接的等效項,而且已知的解決方案具有無法接受的缺點 (例如,GNOME 中的 Window.is_skip_taskbar 需要不安全模式),因此 Electron 無法在 Linux 上支援此功能。
17.x.y 版本終止支援
根據專案的 支援政策,Electron 17.x.y 版本已終止支援。建議開發人員和應用程式升級到較新版本的 Electron。
E18 (3 月 '22) | E19 (5 月 '22) | E20 (8 月 '22) | E21 (9 月 '22) | E22 (12 月 '22) |
---|---|---|---|---|
18.x.y | 19.x.y | 20.x.y | 21.x.y | 22.x.y |
17.x.y | 18.x.y | 19.x.y | 20.x.y | 21.x.y |
16.x.y | 17.x.y | 18.x.y | 19.x.y | 20.x.y |
15.x.y | -- | -- | -- | -- |
接下來是什麼
短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。雖然我們謹慎地不對發布日期做出承諾,但我們的計畫是每 2 個月左右發布包含這些元件新主要版本的 Electron 新主要版本。
您可以在此處找到 Electron 的公開時程表。
有關未來變更的更多資訊,請參閱 計畫中的破壞性變更 頁面。