跳到主要內容

Electron 5.0.0

·4 分鐘閱讀

Electron 團隊很高興宣布 Electron 5.0.0 的發布!您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的發行頁面下載 tarball。此版本包含許多升級、修復和新功能。我們迫不及待想看看您使用它們建置什麼!繼續閱讀以了解有關此版本的詳細資訊,並請分享您有的任何意見回饋!


新功能?

Electron 的許多功能是由 Chromium、Node.js 和 V8 的核心元件提供的。Electron 與這些專案保持同步更新,以便為我們的使用者提供新的 JavaScript 功能、效能改進和安全性修復。這些套件在 Electron 5 中都有主要版本更新

Electron 5 還包括對 Electron 特定 API 的改進。以下是主要變更的摘要;如需完整的變更清單,請查看 Electron v5.0.0 發行說明

Promise 化

Electron 5 繼續 Promise 化倡議,將 Electron 基於回呼的 API 轉換為使用 Promise。這些 API 已針對 Electron 5 進行轉換

  • app.getFileIcon
  • contentTracing.getCategories
  • contentTracing.startRecording
  • contentTracing.stopRecording
  • debugger.sendCommand
  • Cookies API
  • shell.openExternal
  • webContents.loadFile
  • webContents.loadURL
  • webContents.zoomLevel
  • webContents.zoomFactor
  • win.capturePage

macOS 的系統顏色存取權

這些函式已變更或新增至 systemPreferences,以存取 macOS 系統的顏色

  • systemPreferences.getAccentColor
  • systemPreferences.getColor
  • systemPreferences.getSystemColor

程序記憶體資訊

已新增函式 process.getProcessMemoryInfo,以取得有關目前程序的記憶體使用統計資訊。

遠端 API 的額外篩選

為了提高 remote API 的安全性,已新增遠端事件,以便可以篩選 remote.getBuiltinremote.getCurrentWindowremote.getCurrentWebContents<webview>.getWebContents

BrowserWindow 上的多個 BrowserView

BrowserWindow 現在支援在同一個 BrowserWindow 中管理多個 BrowserView。

重大變更

封裝應用程式的預設值

封裝的應用程式現在的行為會與預設應用程式相同:除非應用程式有應用程式選單,否則會建立預設應用程式選單,並且除非應用程式處理 window-all-closed 事件,否則會自動處理該事件。

混合沙盒

混合沙盒模式現在預設為啟用。以 sandbox: true 啟動的渲染器現在實際上會進行沙盒處理,而先前僅在也啟用混合沙盒模式時才會進行沙盒處理。

安全性改進

nodeIntegrationwebviewTag 的預設值現在為 false,以提高安全性。

拼字檢查器現在是非同步的

拼字檢查 API 已變更為提供非同步結果

棄用

以下 API 在 Electron 5.0.0 中已新增為已棄用,並計畫在 6.0.0 中移除

適用於 arm 和 arm64 的 Mksnapshot 二進位檔

適用於 arm 和 arm64 的 mksnapshot 原生二進位檔已棄用,並將在 6.0.0 中移除。可以使用 x64 二進位檔為 arm 和 arm64 建立快照。

WebContents 上的 ServiceWorker API

已棄用 WebContents 上的 ServiceWorker API,以為移除它們做準備。

  • webContents.hasServiceWorker
  • webContents.unregisterServiceWorker

具有沙盒化 webContents 的自動模組

為了提高安全性,以下模組已棄用,無法直接透過 require 使用,而是需要透過沙盒化 webcontents 中的 remote.require 包含

  • electron.screen
  • child_process
  • fs
  • os
  • path

webFrame 隔離世界 API

webFrame.setIsolatedWorldContentSecurityPolicywebFrame.setIsolatedWorldHumanReadableNamewebFrame.setIsolatedWorldSecurityOrigin 已棄用,改用 webFrame.setIsolatedWorldInfo

混合沙盒

enableMixedSandbox--enable-mixed-sandbox 命令列開關仍然存在以實現相容性,但已棄用且無效。

終止對 2.0.x 的支援

根據我們的支援的版本政策,2.0.x 已達到生命週期終止。

應用程式回饋計畫

我們繼續使用我們的應用程式回饋計畫進行測試。參與此計畫的專案在其應用程式上測試 Electron beta 版;作為回報,他們發現的新錯誤會在穩定版本中優先處理。如果您想參與或了解更多資訊,請查看我們關於該計畫的部落格文章

下一步?

在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發。儘管我們謹慎不對發行日期做出承諾,但我們的計畫是每季左右發行包含這些元件新版本的 Electron 主要版本。暫定的 6.0.0 時程表繪製了 Electron 6 開發生命週期中的關鍵日期。此外,請參閱我們的版本控制文件,以取得有關 Electron 中版本控制的更詳細資訊。

有關即將推出的 Electron 版本中計畫的重大變更的資訊,請參閱我們的計畫重大變更文件