跳至主要內容

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 發行說明

Promisification

Electron 5 繼續Promisification 計畫,將 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 即將推出的版本中計畫的重大變更資訊,請參閱我們的計畫重大變更文件