Electron 5.0.0
Electron 團隊很高興宣布 Electron 5.0.0 的發佈!您可以使用 npm 透過 npm install electron@latest
安裝,或從我們的發佈頁面下載 tarball。此版本包含許多升級、修復和新功能。我們迫不及待想看看您使用它們建置什麼!繼續閱讀以了解有關此版本的詳細資訊,並請分享您的任何意見回饋!
新功能?
Electron 的許多功能是由 Chromium、Node.js 和 V8 的核心元件提供。Electron 會與這些專案保持同步,為我們的使用者提供新的 JavaScript 功能、效能改進和安全性修復。在 Electron 5 中,這些套件的每個都有主要版本更新
- Chromium
73.0.3683.119
- Node.js
12.0.0
- V8
7.3.492.27
。
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.getBuiltin
、remote.getCurrentWindow
、remote.getCurrentWebContents
和 <webview>.getWebContents
。
BrowserWindow 上有多個 BrowserView
BrowserWindow 現在支援在同一個 BrowserWindow 中管理多個 BrowserView。
重大變更
封裝應用程式的預設值
封裝應用程式現在的行為會與預設應用程式相同:除非應用程式有應用程式選單,否則將建立預設應用程式選單,並且除非應用程式處理事件,否則將自動處理 window-all-closed
事件。
混合沙盒
混合沙盒模式現在預設為啟用。使用 sandbox: true
啟動的渲染器現在實際上會受到沙盒化,之前只有在啟用混合沙盒模式時才會受到沙盒化。
安全性改進
為了提高安全性,nodeIntegration
和 webviewTag
的預設值現在為 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.setIsolatedWorldContentSecurityPolicy
、webFrame.setIsolatedWorldHumanReadableName
、webFrame.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 即將推出的版本中計畫的重大變更資訊,請參閱我們的計畫重大變更文件。