跳至主要內容

42 篇標記為「Release」的文章

關於新 Electron 版本的部落格文章

檢視所有標籤

Electron 14.0.0

·閱讀 6 分鐘

Electron 14.0.0 已發布!它包含對 Chromium 93 和 V8 9.3 的升級。我們新增了一些 API 更新、錯誤修復和一般改進。請閱讀以下內容以瞭解更多詳細資訊!


Electron 團隊很高興宣布 Electron 14.0.0 的發布!您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的發行網站下載。請繼續閱讀以瞭解有關此版本的詳細資訊,並分享您的任何意見回饋!

重要變更

Electron 發行節奏變更

從 2021 年 9 月的 Electron 15 開始,Electron 將每 8 週發布一個新的主要穩定版本。您可以閱讀此處的完整詳細資訊。Electron 15 將於 2021 年 9 月 1 日開始測試版,並於 2021 年 9 月 21 日發布穩定版本。您可以在此處找到 Electron 的公開時間軸。此外,Electron 將把支援的版本從最新的三個版本更改為最新的四個版本,直到 2022 年 5 月。請參閱我們的版本控制文件以瞭解有關 Electron 中版本控制的更多詳細資訊。

堆疊變更

重點功能

  • 預設已變更:nativeWindowOpen 現在預設為 true(請參閱文件)
  • 子視窗不再繼承其父視窗的 BrowserWindow 建構選項。#28550
  • 新增了新的 session.storagePath API,以取得磁碟上特定於工作階段的資料路徑。#28665
  • 新增了 @electron/remote 使用的 process.contextId#28007
  • Electron Fuse 後面新增了實驗性的 Cookie 加密支援。#29492

請參閱14.0.0 發行說明,以瞭解新功能和變更的完整清單。

重大變更

以下是 Electron 14 中引入的重大變更。有關這些變更和未來變更的更多資訊,請參閱計畫的重大變更頁面。

已移除:app.allowRendererProcessReuse

app.allowRendererProcessReuse 屬性已移除,作為我們更緊密地與 Chromium 的安全性、效能和可維護性的程序模型對齊計畫的一部分。

如需更詳細的資訊,請參閱#18397

已移除:瀏覽器視窗親和性

在建構新的 BrowserWindow 時,affinity 選項已移除,作為我們更緊密地與 Chromium 的安全性、效能和可維護性的程序模型對齊計畫的一部分。

如需更詳細的資訊,請參閱#18397

API 已變更:window.open()

選用參數 frameName 不再設定視窗的標題。此行為現在遵循 windowName 參數的原生文件中描述的規格。

如果您使用此參數來設定視窗的標題,則可以改用 win.setTitle(title) 方法。

已移除:worldSafeExecuteJavaScript

worldSafeExecuteJavaScript 已移除,沒有替代方案。請確保您的程式碼在使用此屬性啟用的情況下可以運作。自 Electron 12 以來,它預設已啟用。

如果您使用 webFrame.executeJavaScriptwebFrame.executeJavaScriptInIsolatedWorld,您將會受到此變更的影響。您將需要確保這些方法傳回的值受 內容橋接 API 支援,因為這些方法使用相同的值傳遞語意。

預設已變更:nativeWindowOpen 預設為 true

在 Electron 14 之前,預設會對 window.open 進行墊片處理,以使用 BrowserWindowProxy。這表示 window.open('about:blank') 無法開啟可同步編寫指令碼的子視窗,以及其他不相容的情況。nativeWindowOpen 不再是實驗性的,現在是預設值。

如需更多詳細資訊,請參閱Electron 中的 window.open 文件

已移除:從父視窗繼承的 BrowserWindowConstructorOptions

在 Electron 14 之前,使用 window.open 開啟的視窗會從其父視窗繼承 BrowserWindow 建構函式選項,例如 transparentresizable。從 Electron 14 開始,此行為已移除,視窗將不會從其父視窗繼承任何 BrowserWindow 建構函式選項。

請改用 setWindowOpenHandler 明確設定新視窗的選項

webContents.setWindowOpenHandler((details) => {
return {
action: 'allow',
overrideBrowserWindowOptions: {
// ...
},
};
});

已移除:additionalFeatures

已移除 WebContents 的 new-windowdid-create-window 事件中已棄用的 additionalFeatures 屬性。由於 new-window 使用位置參數,因此該參數仍然存在,但始終會是空陣列 []。(注意:new-window 事件本身已棄用,並已由 setWindowOpenHandler 取代。)視窗功能中的裸金鑰現在會以選項物件中的值為 true 的金鑰呈現。

// Removed in Electron 14
// Triggered by window.open('...', '', 'my-key')
webContents.on('did-create-window', (window, details) => {
if (details.additionalFeatures.includes('my-key')) {
// ...
}
});

// Replace with
webContents.on('did-create-window', (window, details) => {
if (details.options['my-key']) {
// ...
}
});

已移除:remote 模組

在 Electron 12 中已棄用的 remote 模組現在已從 Electron 本身移除,並提取到一個單獨的套件 @electron/remote 中。@electron/remote 模組將主處理程序的 JavaScript 物件橋接到渲染處理程序。這讓您可以存取僅限主處理程序的物件,如同它們在渲染處理程序中可用一樣。這是 remote 模組的直接替代品。有關遷移說明和參考,請參閱模組的 readme

API 變更

  • 新增 BrowserWindow.isFocusable() 方法,以判斷視窗是否可聚焦。#28642
  • 新增 WebFrameMain.visibilityState 實例屬性。#28706
  • 在傳遞給以 setWindowOpenHandler 註冊的視窗開啟處理程序的詳細資訊物件中,新增了 dispositionreferrerpostBody#28518
  • 新增了 @electron/remote 使用的 process.contextId#28007
  • Electron Fuse 後面新增了實驗性的 Cookie 加密支援。#29492
  • webRequest 監聽器詳細資訊新增了缺少的 resourceType 轉換:fontpingcspReportmediawebSocket#30050
  • 新增了新的 session.storagePath API,以取得磁碟上特定於工作階段的資料路徑。#28665
  • 新增對 macOS 上的 Windows 控制項覆蓋的支援。#29986
  • 新增使用 --log-file=.../path/to/file.log 將 Chromium 記錄導向檔案的支援。此外,現在可以透過在第一個 JS 刻度期間附加命令列參數來從 JavaScript 啟用記錄。#29963
  • 在節點加密中新增對 des-ede3 密碼的支援。#27897
  • 新增 ContextBridgeMutability 功能,允許修改內容橋接物件。#27348

已移除/已棄用變更

已移除或現在已棄用以下 API

  • 在 Electron 12 中棄用後,remote 模組已移除。#25734
  • 子視窗不再繼承其父視窗的 BrowserWindow 建構選項。#28550
  • new-windowdid-create-window WebContents 事件中移除已棄用的 additionalFeatures 屬性。#28548
  • 移除已棄用的 app.allowRendererProcessReuse 和 BrowserWindow affinity 選項。#26874
  • uploadToServer 為 false 時,crashReporter.startsubmitURL 選項不再是必要參數。#28105

對 11.x.y 的支援終止

根據專案的支援政策,Electron 11.x.y 已達到支援終止。鼓勵開發人員和應用程式升級到較新版本的 Electron。

下一步是什麼

在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發。儘管我們謹慎地不對發布日期做出承諾,但我們的計劃是每季發布包含這些元件新版本的新主要 Electron 版本。

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

新的 Electron 發行節奏

·閱讀 6 分鐘

從 2021 年 9 月開始,Electron 將每 8 週發布一個新的主要穩定版本。


在 2019 年,Electron 改為 12 週的發布週期,以匹配 Chromium 的 6 週發布週期。最近,Chrome 和 Microsoft 都宣布了變更,這使我們重新考慮 Electron 目前的發布節奏

  1. Chromium 計劃4 週發布一個新的里程碑,從 2021 年 9 月 21 日的 Chrome 94 開始。 此發布節奏還增加了每 8 週一次的新延長穩定選項,其中將包含所有更新的安全修復。

  2. Microsoft Store 將要求基於 Chromium 的應用程式不得早於 2 個主要版本內。例如,如果發布的最新 Chromium 主要版本為 85,則任何基於 Chromium 的瀏覽器都必須至少使用 Chromium 版本 83 或更高版本。此規則包括 Electron 應用程式。

從 2021 年 9 月開始,Electron 將每 8 週發布一個新的主要穩定版本,以匹配 Chromium 的 8 週延長穩定版本。

我們第一個包含 Chromium 延長穩定版本的版本將是 Electron 15,於 2021 年 9 月 21 日發布。

知道發布節奏的變更將會影響其他下游應用程式,我們希望盡快讓我們的開發人員社群知道。請繼續閱讀有關我們 2021 年發布時間表的更多詳細資訊。

Electron 15:臨時 Alpha 版本

鑑於我們最初的 Electron 15 版本目標是非延長穩定版本(Chromium 的延長穩定版本基於其偶數版本),我們需要變更最初的目標發布日期。但是,Electron 應用程式必須使用 Chromium 的最新 2 個主要版本,才能被 Microsoft Store 接受,這使得等待兩個 Chromium 版本變得難以維持。

有了這兩個要求,我們的團隊面臨了時間上的難題。將 Electron 15 移至包含 Chromium M94 將允許應用程式開發人員使用第一個 Chromium 延長穩定版本;但是,這也將把 Beta 版到穩定版的週期縮短為只有 3 週。

為了協助此轉換,Electron 將提供一個僅適用於 Electron 15 版本的臨時 Alpha 版本。此 Alpha 版本將允許開發人員有更多時間測試和規劃 Electron 15 版本,並提供比我們目前的每晚版本更穩定的版本。

Alpha 通道版本將於 2021 年 7 月 20 日發布 Electron 15。它將於 2021 年 9 月 1 日轉換為 Beta 版本,穩定版本的目標是 2021 年 9 月 21 日。後續的 Electron 版本將不會有 Alpha 版本。

2021 年發布計畫

以下是我們目前的 2021 年發布時間表

ElectronChromeAlpha 版本Beta 版本穩定版本穩定週期(週)
E13M91-2021-3-052021-5-2512
E14M93-2021-5-262021-8-3114
E15M942021-7-202021-9-012021-9-219(包括 Alpha 版本)
E16M96-2021-9-222021-11-168
E17M98-2021-11-172022-2-0111

加入 Alpha 通道將 Electron 15 發布前的開發時間從 3 週延長到 9 週,更接近我們新的 8 週週期,同時仍滿足 Windows 市集提交的要求。

為了進一步協助應用程式開發人員,在 2021 年剩餘時間到 2022 年 5 月期間,我們還將把我們的支援版本政策從最新的 3 個版本延長到最新的 4 個 Electron 版本。這表示即使您無法立即變更升級時間表,較舊版本的 Electron 仍會收到安全更新和修復。

解決疑慮

我們之所以在本次發佈週期變更排定之前就發佈這篇文章,是有原因的。我們知道,更快的發佈週期將會對 Electron 應用程式產生實際影響,其中一些應用程式可能已經覺得我們的主要版本發佈頻率過於頻繁。

我們已在下方嘗試解決常見的疑慮

❓ 為什麼要做此變更?為什麼不維持 12 週的發佈頻率?

為了在 Electron 中提供最新版本的 Chromium,我們的排程需要與他們的排程同步。關於 Chromium 發佈週期的更多資訊,請參閱此處

此外,目前的 12 週發佈頻率對於 Microsoft Store 的新提交要求來說是難以維持的。即使是使用最新穩定版 Electron 的應用程式,也會經歷大約兩週的時間,在這段時間內,他們的應用程式可能會在新安全要求下被拒絕。

每個新的 Chromium 版本都包含新功能、錯誤修正/安全修正和 V8 改善。我們希望您(身為應用程式開發人員)能及時獲得這些變更,因此我們的穩定版發佈日期將會持續與每個其他 Chromium 穩定版發佈日期一致。身為應用程式開發人員,您將能比以往更快地存取新的 Chromium 和 V8 功能與修正。

❓ 現有的 12 週發佈排程已經很快了。團隊正在採取哪些措施來使升級更容易?

更頻繁發佈的一個優點是發佈的版本會更。我們理解升級 Electron 的主要版本可能很困難。我們希望較小的發佈版本會減少每個版本中 Chromium 和 Node 的重大變更,並減少重大變更。

❓ 未來的 Electron 版本是否會有 alpha 版本可用?

目前沒有支援永久 alpha 版本的計畫。此 alpha 版本僅適用於 Electron 15,目的是協助開發人員在縮短的發佈期間內更輕鬆地升級。

❓ Electron 是否會擴展支援的版本數量?

在 2022 年 5 月 Electron 19 發佈之前,我們會將支援的版本政策從最新的三個版本擴展到最新的四個 Electron 版本。在 Electron 19 發佈之後,我們會恢復支援最新的三個主要版本,以及 beta 和 nightly 版本。

E13(2021 年 5 月)E14(2021 年 8 月)E15(2021 年 9 月)E16(2021 年 11 月)E17(2022 年 2 月)E18(2022 年 3 月)E19(2022 年 5 月)
13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y19.x.y
12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y
11.x.y12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y
----12.x.y13.x.y14.x.y15.x.y--

有問題?

📨 如果您有任何問題或疑慮,請傳送電子郵件至 info@electronjs.org加入我們的 Discord。我們知道此變更會影響許多應用程式和開發人員,您的意見回饋對我們非常重要。我們希望收到您的回覆!

Electron 13.0.0

·3 分鐘閱讀時間

Electron 13.0.0 已發佈!其中包含 Chromium 91 和 V8 9.1 的升級。我們新增了多項 API 更新、錯誤修正和一般改進。請閱讀下文以瞭解更多詳細資訊!


Electron 團隊很高興宣佈 Electron 13.0.0 的發佈!您可以使用 npm 透過 npm install electron@latest 安裝,或從我們的發佈網站下載。請繼續閱讀以瞭解有關此版本的詳細資訊,並分享您的任何意見回饋!

重要變更

堆疊變更

重點功能

  • 新增 process.contextIsolated 屬性,指出目前的渲染器內容是否已啟用 contextIsolation#28252
  • 新增 session.storagePath API,以取得磁碟上特定於工作階段的資料路徑。 #28866
  • 已淘汰 WebContentsnew-window 事件。它已由 webContents.setWindowOpenHandler() 取代
  • 新增 process.contextId,由 @electron/remote 使用。 #28251

請參閱13.0.0 版本資訊,以取得新功能和變更的完整清單。

重大變更

  • window.open() 參數 frameName 不再設定為視窗標題。 #27481
  • 已將 session.setPermissionCheckHandler(handler) 變更為允許 handler 的第一個參數 webContentsnull#19903

關於這些和未來變更的更多資訊,請參閱計畫的重大變更頁面。

API 變更

  • BrowserWindow 新增 roundedCorners 選項。 #27572
  • 新增 session.storagePath API,以取得磁碟上特定於工作階段的資料路徑。28866
  • 新增支援,以透過內容橋傳遞 DOM 元素。 #26776
  • process.uptime() 新增至沙箱渲染器。 #26684
  • 已將遺失的欄位新增至做為 context-menu 事件一部分發出的參數。#26788
  • 新增註冊 Manifest V3 擴充功能服務工作人員的支援。
  • 將「registration-completed」事件新增至 ServiceWorkers。 #27562

已移除/已棄用變更

已移除或現在已棄用以下 API

  • 已淘汰 WebContentsnew-window 事件。它已由 webContents.setWindowOpenHandler() 取代

  • 已移除已淘汰的 shell.moveItemToTrash()#26723

  • 已移除下列已淘汰的 BrowserWindow 擴充功能 API

    • BrowserWindow.addExtension(path)
    • BrowserWindow.addDevToolsExtension(path)
    • BrowserWindow.removeExtension(name)
    • BrowserWindow.removeDevToolsExtension(name)
    • BrowserWindow.getExtensions()
    • BrowserWindow.getDevToolsExtensions()

    請改用 session API

    • ses.loadExtension(path)
    • ses.removeExtension(extension_id)
    • ses.getAllExtensions()
  • 已淘汰下列 systemPreferences 方法

    • systemPreferences.isDarkMode()
    • systemPreferences.isInvertedColorScheme()
    • systemPreferences.isHighContrastColorScheme()

    請改用下列 nativeTheme 屬性

    • nativeTheme.shouldUseDarkColors
    • nativeTheme.shouldUseInvertedColorScheme
    • nativeTheme.shouldUseHighContrastColors

終止對 10.x.y 的支援

根據專案的支援政策,Electron 10.x.y 已終止支援。我們鼓勵開發人員和應用程式升級到較新版本的 Electron。

下一步是什麼

短期而言,您可以預期團隊會繼續專注於跟上構成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發進度。雖然我們不會對發佈日期做出承諾,但我們的計畫是以大約每季發佈一次包含這些元件新版本的新主要 Electron 版本。14.0.0 的暫定排程 標示出 Electron 14.0 開發生命週期的主要日期。此外,請參閱我們的版本控制文件,以瞭解關於 Electron 版本控制的更多詳細資訊。

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

Electron 12.0.0

·5 分鐘閱讀時間

Electron 12.0.0 已發佈!其中包含 Chromium 89、V8 8.9 和 Node.js 14.16 的升級。我們對 remote 模組、contextIsolation 的新預設值、新的 webFrameMain API 和一般改進進行了變更。請閱讀下文以瞭解更多詳細資訊!


Electron 團隊很高興宣佈 Electron 12.0.0 的發佈!您可以使用 npm 透過 npm install electron@latest 安裝,或從我們的發佈網站下載。請繼續閱讀以瞭解有關此版本的詳細資訊,並分享您的任何意見回饋!

重要變更

堆疊變更

重點功能

  • ContextBridge exposeInMainWorld 方法現在可以公開非物件 API。 #26834
  • 已從 Node 12 升級至 Node 14。 #23249
  • 新增 webFrameMain API,用於從主要程序存取 WebContents 執行個體的子框架。 #25464
  • contextIsolationworldSafeExecuteJavaScript 的預設值現在為 true#27949 #27502

請參閱12.0.0 版本說明以取得完整的新功能與變更列表。

重大變更

關於這些和未來變更的更多資訊,請參閱計畫的重大變更頁面。

API 變更

  • 新增 webFrameMain API:webFrameMain 模組可用於在現有 WebContents 實例中查找框架。這是現有 webFrame API 的主要處理程序對應項。關於此新 API 的更多資訊可以在這裡找到,以及在我們的文件中找到。
  • app API 變更
    • 新增非本地化的 serviceName'child-process-gone' / app.getAppMetrics()#25975
    • 新增新的 app.runningUnderRosettaTranslation 屬性,以偵測在 Apple silicon 上是否在 rosetta 下執行。#26444
    • 新增 exitCoderender-process-gone 詳細資訊(app & webContents)。#27677
  • BrowserWindow API 變更
    • 新增 BrowserWindow.isTabletMode() API。#25209
    • 新增 resized(Windows/macOS)和 moved(Windows)事件到 BrowserWindow#26216
    • 新增新的 system-context-menu 事件,允許防止和覆寫系統右鍵選單。#25795
    • 新增 win.setTopBrowserView(),以便可以提升 BrowserView#27713
    • 新增 webPreferences.preferredSizeMode 以允許根據其文件最小尺寸調整視圖大小。#25874
  • contextBridge API 變更
    • 允許 ContextBridge exposeInMainWorld 方法公開非物件 API。#26834
  • display API 變更
    • 新增 displayFrequency 屬性到 Display 物件,以允許取得 Windows 上關於螢幕刷新率的資訊。#26472
  • extensions API 變更
    • 新增對某些 chrome.management API 的支援。#25098
  • MenuItem API 變更
    • 新增對顯示 macOS 分享選單的支援。#25629
  • net API 變更
    • net.request() 新增一個新的 credentials 選項。#25284
    • 新增 net.online 以偵測目前是否有網路連線。#21004
  • powerMonitor API 變更
    • 新增 powerMonitor.onBatteryPower#26494
    • 新增快速使用者切換事件到 macOS 上的 powerMonitor。#25321
  • session API 變更
    • 新增 allowFileAccess 選項到 ses.loadExtension() API。#27702
    • session.setPermissionRequestHandler 新增 display-capture API。#27696
    • 新增 disabledCipherSuites 選項到 session.setSSLConfig#25818
    • 新增 extension-loadedextension-unloadedextension-ready 事件到 session#25385
    • 新增 session.setSSLConfig() 以允許設定 SSL。#25461
    • 新增對在 session.setProxy() 中明確指定 directauto_detectsystem 模式的支援。#24937
    • 新增 Serial API 支援。#25237
    • 新增啟用/停用拼字檢查器的 API。#26276
  • shell API 變更
    • 新增一個新的非同步 shell.trashItem() API,取代同步的 shell.moveItemToTrash()#25114
  • webContents API 變更
    • 在主控台中新增一個小的提示,以協助除錯渲染器崩潰。#25317
    • 在 webRequest 處理程序中的詳細資訊物件中新增 framewebContents 屬性。#27334
    • 新增 webContents.forcefullyCrashRenderer() 以強制終止渲染器進程,以協助復原掛起的渲染器。#25580
    • 為渲染器建立的子視窗新增 setWindowOpenHandler API,並棄用 new-window 事件。#24517
  • webFrame API 變更
    • 新增拼字檢查 API 到渲染器。#25060

已移除/已棄用變更

已移除或現在已棄用以下 API

  • remote 模組已棄用。它已被 @electron/remote 取代。#25293
  • 移除已棄用的 crashReporter API。#26709
  • 從封裝應用程式中的預設「說明」選單中移除 Electron 網站的連結。#25831

9.x.y 終止支援

根據專案的支援政策,Electron 9.x.y 已達到終止支援。鼓勵開發人員和應用程式升級到較新版本的 Electron。

下一步是什麼

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

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

Electron 11.0.0

·4 分鐘閱讀

Electron 11.0.0 已發布!它包括 Chromium 87、V8 8.7 和 Node.js 12.18.3 的升級。我們新增了對 Apple silicon 的支援以及一般改進。請閱讀以下內容以取得更多詳細資訊!


Electron 團隊很高興宣布 Electron 11.0.0 的發布!您可以使用 npm 通過 npm install electron@latest 安裝它,或從我們的發布網站下載它。此版本包含升級、修正以及對 Apple M1 硬體的新支援。

我們迫不及待想看看您使用它們建構什麼!繼續閱讀以取得關於此版本的詳細資訊,並請分享您的任何回饋意見!

重要變更

堆疊變更

重點功能

請參閱11.0.0 版本說明以取得完整的新功能與變更列表。

重大變更

  • 移除實驗性 API:BrowserView.{fromId, fromWebContents, getAllViews}BrowserViewid 屬性。#23578

關於這些和未來變更的更多資訊,請參閱計畫的重大變更頁面。

API 變更

  • 新增 app.getApplicationInfoForProtocol() API,它會返回有關處理特定協議的應用程式的詳細資訊。#24112
  • 新增 app.createThumbnailFromPath() API,它會返回一個檔案的預覽圖片,給定其檔案路徑和最大縮圖大小。#24802
  • 新增 webContents.forcefullyCrashRenderer() 以強制終止渲染器進程,以協助復原掛起的渲染器。#25756

8.x.y 終止支援

根據專案的支援政策,Electron 8.x.y 已終止支援。建議開發者和應用程式升級到較新版本的 Electron。

下一步是什麼

短期內,您可以預期團隊會繼續專注於跟上組成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發進度。雖然我們謹慎不對發布日期做出承諾,但我們的計畫是約每季發布包含這些元件新版本的新主要 Electron 版本。暫定的 12.0.0 時程表概述了 Electron 12.0 開發生命週期中的關鍵日期。此外,請參閱我們的版本控制文件,以取得有關 Electron 中版本控制的更詳細資訊。

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

持續進行 remote 模組的棄用工作

我們在Electron 9中開始著手移除 remote 模組。我們計畫在 Electron 14 中移除 remote 模組本身。

請閱讀並追蹤這個 issue,以了解完整的棄用計畫和詳細資訊。

要求原生 Node 模組必須支援上下文或 N-API 的最後一步 (在 Electron 12 中)

從 Electron 6 開始,我們一直在為要求在渲染程序中載入的原生 Node 模組必須是N-API支援上下文奠定基礎。強制執行此變更可提高安全性、加快效能並減少維護工作量。此計畫的最後一步是在 Electron 12 中移除停用渲染程序重用的能力。

請閱讀並追蹤這個 issue,以了解完整詳細資訊,包括建議的時程表。

Electron 10.0.0

·5 分鐘閱讀時間

Electron 10.0.0 已發布!它包含 Chromium 85、V8 8.5 和 Node.js 12.16 的升級。我們新增了多個新的 API 整合和改進。請閱讀以下內容以了解更多詳細資訊!


Electron 團隊很高興宣布發布 Electron 10.0.0!您可以使用 npm 透過 npm install electron@latest 安裝,或從我們的發布網站下載。此版本包含升級、修正和新功能。

在 Electron 10 版本中,我們也對發行說明進行了變更。為了更容易辨別 Electron 10 中的全新內容,以及 Electron 10 和過去版本之間可能發生的變化,我們現在還包含已在 Electron 10 中引入,但回溯移植到先前版本的變更。我們希望這能讓應用程式在升級 Electron 時更容易找到新功能和錯誤修正。

我們迫不及待想看看您使用它們建構什麼!繼續閱讀以取得關於此版本的詳細資訊,並請分享您的任何回饋意見!

重要變更

堆疊變更

重點功能

  • 新增 contents.getBackgroundThrottling() 方法和 contents.backgroundThrottling 屬性。[#21036]
  • 在主程序中公開了 desktopCapturer 模組。#23548
  • 現在可以透過呼叫 ses.isPersistent() API 來檢查給定的 session 是否為持久性。#22622
  • 解決了因網路 IP 位址變更和 ICE 而導致 RTC 呼叫無法連線的網路問題。(Chromium issue 1113227)。#24998

請參閱10.0.0 發行說明,以取得新功能和變更的完整列表。

重大變更

  • enableRemoteModule 的預設值變更為 false#22091
    • 這是我們棄用 remote 模組並將其移至使用者空間的計畫的一部分。您可以閱讀並追蹤這個 issue,其中詳細說明了我們這樣做的原因,並包含建議的棄用時程表。
  • app.allowRendererProcessReuse 的預設值變更為 true#22336(在Electron 9中也是如此)
    • 這將防止在渲染程序中載入不支援上下文的原生模組。
    • 您可以閱讀並追蹤這個 issue,其中詳細說明了我們這樣做的原因,並包含建議的棄用時程表。
  • 修正了當作業系統地區設定設定為由右至左 (RTL) 語言(如阿拉伯語或希伯來語)時,macOS 上視窗按鈕的位置。無邊框視窗應用程式在設定視窗樣式時可能必須考慮此變更。#22016

關於這些和未來變更的更多資訊,請參閱計畫的重大變更頁面。

API 變更

  • Session:現在可以透過呼叫 ses.isPersistent() API 來檢查給定的 session 是否為持久性。#22622
  • Contents:新增 contents.getBackgroundThrottling() 方法和 contents.backgroundThrottling 屬性。#21036

已棄用的 API

以下 API 現在已棄用或移除

  • 移除了已棄用的 netLogcurrentlyLoggingPath 屬性。此外,netLog.stopLogging 不再傳回記錄的日誌路徑。#22732
  • crashReporter 中棄用了未壓縮的當機上傳。#23598

7.x.y 的支援終止

根據專案的支援政策,Electron 7.x.y 已終止支援。建議開發者和應用程式升級到較新版本的 Electron。

下一步是什麼

短期內,您可以預期團隊會繼續專注於跟上組成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發進度。雖然我們謹慎不對發布日期做出承諾,但我們的計畫是約每季發布包含這些元件新版本的新主要 Electron 版本。暫定的 11.0.0 時程表概述了 Electron 11.0 開發生命週期中的關鍵日期。此外,請參閱我們的版本控制文件,以取得有關 Electron 中版本控制的更詳細資訊。

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

持續進行 remote 模組的棄用工作(在 Electron 11 中)

我們在Electron 9中開始著手移除遠端模組,並且我們將繼續執行移除 remote 模組的計畫。在 Electron 11 中,我們計畫繼續重構工作,以實作WeakRef,就像我們在 Electron 10 中所做的那樣。請閱讀並追蹤這個 issue,以了解完整的棄用計畫和詳細資訊。

要求原生 Node 模組必須支援上下文或 N-API 的最後一步 (在 Electron 12 中)

編輯:最初,這篇部落格文章指出我們將在 Electron 11 中停用渲染程序重用。停用渲染程序重用現在已推遲到 Electron 12。

從 Electron 6 開始,我們一直在為要求在渲染程序中載入的原生 Node 模組必須是N-API支援上下文奠定基礎。強制執行此變更可提高安全性、加快效能並減少維護工作量。此計畫的最後一步是在 Electron 12 中移除停用渲染程序重用的能力。請閱讀這個 issue,以了解完整詳細資訊,包括建議的時程表。

Electron 9.0.0

·4 分鐘閱讀

Electron 9.0.0 已發布!它包含 Chromium 83、V8 8.3 和 Node.js 12.14 的升級。我們為我們的拼字檢查功能新增了多個新的 API 整合,啟用了 PDF 檢視器,以及更多功能!


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

重要變更

堆疊變更

重點功能

  • 對拼字檢查功能進行了多項改進。請參閱#22128#22368,以了解更多詳細資訊。
  • 提高了 Linux 上視窗事件處理常式的效率。#23260
  • 啟用 PDF 檢視器。#22131

請參閱 9.0.0 版本發行說明,以取得完整的新功能和變更清單。

重大變更

  • 當使用 remote 且未啟用 enableRemoteModule: true 時,會出現棄用警告。#21546
    • 這是我們計畫棄用 remote 模組並將其移至使用者空間的第一步。您可以閱讀並追蹤 這個議題,其中詳細說明了我們的理由,並包含了建議的棄用時程。
  • 預設將 app.enableRendererProcessReuse 設定為 true。#22336
    • 這是為未來要求在渲染器程序中載入的原生 Node 模組必須是 N-APIContext Aware 而持續進行的工作。完整資訊和建議時程詳見 此議題
  • 現在透過 IPC 傳送非 JavaScript 物件會擲回例外。#21560
    • 此行為已在 Electron 8.0 中棄用。在 Electron 9.0 中,舊的序列化演算法已被移除,並且傳送此類不可序列化的物件現在將擲回「無法複製物件」錯誤。

關於這些和未來變更的更多資訊,請參閱計畫的重大變更頁面。

API 變更

  • shell API 變更
    • shell.openItem API 已被非同步的 shell.openPath API 取代。提案
  • session API 變更
    • 新增 session.listWordsFromSpellCheckerDictionary API 以列出字典中的自訂單字。#22128
    • 新增 session.removeWordFromSpellCheckerDictionary API 以移除字典中的自訂單字。#22368
    • 新增 session.serviceWorkerContext API 以存取基本的 service worker 資訊並接收來自 service worker 的主控台日誌。#22313
  • app API 變更
    • 在 macOS 上為 app.focus() 新增了一個 force 參數,以允許應用程式強制取得焦點。#23447
  • BrowserWindow API 變更
    • 新增對 BrowserWindow 上某些 getter/setter 配對的屬性存取支援。#23208

已棄用的 API

以下 API 現在已棄用或移除

  • shell.openItem API 現在已棄用,並被非同步的 shell.openPath API 取代。
  • <webview>.getWebContents 已在 Electron 8.0 中棄用,現在已移除。
  • webFrame.setLayoutZoomLevelLimits 已在 Electron 8.0 中棄用,現在已移除。

終止對 6.x.y 的支援

根據專案的支援政策,Electron 6.x.y 已達到支援終止。建議開發人員和應用程式升級到較新版本的 Electron。

下一步是什麼

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

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

contextIsolation 的預設值從 false 變更為 true(從 Electron 10 開始)

如果沒有 contextIsolation,在渲染器程序中執行的任何程式碼都可以很容易地存取 Electron 內部或應用程式的預載腳本。然後,該程式碼可以執行 Electron 希望保持限制的特權操作。

變更此預設值可提高 Electron 應用程式的預設安全性,因此應用程式需要刻意選擇加入不安全的行為。Electron 將在 Electron 10.0 中棄用目前的 contextIsolation 預設值,並在 Electron 12.0 中變更為新的預設值 (true)。

有關 contextIsolation、如何輕鬆啟用它及其安全性優勢的更多資訊,請參閱我們專門的 Context Isolation 文件

Electron 8.0.0

·閱讀 6 分鐘

Electron 8.0.0 已發布!它包含 Chromium 80、V8 8.0 和 Node.js 12.13.0 的升級。我們新增了 Chrome 的內建拼寫檢查器,以及更多功能!


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

重要變更

堆疊變更

重點功能

  • 實作了 Chrome 的內建拼寫檢查器功能的使用。請參閱 #20692#21266 以了解更多詳細資訊。
  • IPC 通訊現在使用 v8 的結構化複製演算法。這比現有的邏輯更快、功能更強大且更不易產生意外,並且為大型緩衝區和複雜物件帶來了 2 倍的效能提升。小型訊息的延遲不會受到顯著影響。請參閱 #20214 以了解更多詳細資訊。

請參閱 8.0.0 版本發行說明,以取得完整的新功能和變更清單。

重大變更

  • 在 context-aware 模組的棄用警告中顯示模組名稱。#21952
    • 這是為未來要求在渲染器程序中載入的原生 Node 模組必須是 N-APIContext Aware 而持續進行的工作。完整資訊和建議時程詳見 此議題
  • 現在使用結構化複製演算法序列化透過 IPC 傳送的值。#20214
  • 由於缺乏維護人員來處理此功能,因此目前已停用離螢幕渲染。它在 Chromium 升級期間中斷,隨後被停用。#20772

關於這些和未來變更的更多資訊,請參閱計畫的重大變更頁面。

API 變更

  • app API 變更
    • 新增 app.getApplicationNameForProtocol(url)#20399
    • 新增 Windows 上對 app.showAboutPanel()app.setAboutPanelOptions(options) 的支援。#19420
  • BrowserWindow API 變更
    • 更新了文件,以註明 BrowserWindow 選項 hasShadow 在所有平台上都可用。#20038
    • trafficLightPosition 選項新增至 BrowserWindow 選項,以允許自訂交通燈按鈕的位置。#21781
    • 為 BrowserWindow 新增 accessibleTitle 選項,以設定可存取的視窗標題。#19698
    • BrowserWindow.fromWebContents() 現在可以傳回 null。#19983
    • 新增 BrowserWindow.getMediaSourceId()BrowserWindow.moveAbove(mediaSourceId)#18926
    • 新增對 macOS 上 will-move 事件的支援。#19641
  • 記錄先前未記錄的 crashReporter.getCrashesDirectory()#20417
  • dialog API 變更
    • dontAddToRecent 屬性新增至 dialog.showOpenDialogdialog.showOpenDialogSync,以防止文件在開啟對話方塊時被新增至 Windows 上的最近文件。#19669
    • 將屬性自訂新增至 dialog.showSaveDialogdialog.showSaveDialogSync#19672
  • Notification API 變更
    • 新增 timeoutType 選項,以允許 Linux/Windows 使用者設定通知逾時的類型。#20153
    • 新增 urgency 選項,以設定 Linux 通知的緊急程度。#20152
  • session API 變更
    • 更新了有關 session.setProxy(config)session.setCertificateVerifyProc(proc) 的文件,以註明可選的選項。#19604
    • 新增 session.downloadURL(url) 以允許在沒有 BrowserWindow 的情況下觸發下載。#19889
    • 新增透過 session.preconnect(options)preconnect 事件對 HTTP preconnect 資源提示的支援。#18671
    • 新增 session.addWordToSpellCheckerDictionary 以允許字典中的自訂單字。#21297
  • 在 macOS 上,為 shell.moveItemToTrash(fullPath[, deleteOnFail]) 新增選項,以指定 moveItemToTrash 失敗時會發生什麼情況。#19700
  • systemPreferences API 變更
    • 更新了 macOS 的 systemPreferences.getColor(color) 文件。#20611
    • systemPreferences.getMediaAccessStatus() 中新增了 screen 媒體類型。 #20764
  • 新增了 nativeTheme.themeSource,允許應用程式覆寫 Chromium 和作業系統的主題選擇。 #19960
  • TouchBar API 變更
    • TouchBarButtonTouchBarLabel 中新增了 accessibilityLabel 屬性,以改善 TouchBarButton/TouchBarLabel 的輔助功能。 #20454
    • 更新了 TouchBar 相關文件 #19444
  • tray API 變更
    • tray.displayBalloon() 中新增了選項: iconTypelargeIconnoSoundrespectQuietTime#19544
    • 新增了 tray.removeBalloon(),可移除已顯示的氣泡通知。 #19547
    • 新增了 tray.focus(),可將焦點返回到工作列通知區域。功能:新增 tray.focus() #19548
  • webContents API 變更
    • 新增了 contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture]),以便在 webContents API 上公開 executeJavaScriptInIsolatedWorld。 #21190
    • 新增了捕捉隱藏的 webContents 的方法。 #21679
    • webContents.print([options], [callback]) 中新增了選項,以啟用列印頁首和頁尾的自訂功能。 #19688
    • 新增了透過 webContents.getAllSharedWorkers()webContents.inspectSharedWorkerById(workerId) 檢查特定共享 worker 的功能。 #20389
    • 在 WebContents.printToPDF() 中新增了對 fitToPageEnabledscaleFactor 選項的支援。 #20436
  • 更新了 webview.printToPDF 文件,以指出傳回類型現在是 Uint8Array。 #20505

已棄用的 API

以下 API 現在已棄用

  • 棄用了 BrowserWindow.setVisibleOnAllWorkspaces 中無效的 visibleOnFullScreen 選項,此選項將在下一個主要版本中移除。 #21732
  • 在 macOS 上棄用了 systemPreferences.getColor(color) 中的 alternate-selected-control-text#20611
  • 由於 Chromium 移除了此功能,因此棄用了 webContentswebFrame<webview> Tag 上的 setLayoutZoomLevelLimits#21296
  • app.allowRendererProcessReuse 的預設值 false 現在已棄用。 #21287
  • 棄用了 <webview>.getWebContents(),因為它依賴於 remote 模組。 #20726

終止對 5.x.y 的支援

根據專案的支援原則,Electron 5.x.y 已終止支援。 建議開發人員和應用程式升級至較新版本的 Electron。

應用程式回饋計畫

我們持續使用我們的應用程式回饋計畫進行測試。參與此計畫的專案會在他們的應用程式上測試 Electron Beta 版;而他們找到的新錯誤會優先處理以用於穩定版本。如果您想參與或了解更多資訊,請查看我們關於此計畫的部落格文章

下一步是什麼

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

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

棄用 remote 模組(從 Electron 9 開始)

由於嚴重的安全性漏洞,我們正開始計畫棄用remote 模組,從 Electron 9 開始。您可以閱讀並追蹤這個議題,其中詳述了我們這麼做的原因,並包含建議的棄用時程。

Electron 7.0.0

·3 分鐘閱讀時間

Electron 7.0.0 已發布!它包括升級至 Chromium 78、V8 7.8 和 Node.js 12.8.1。我們新增了 Windows on Arm 64 發布、更快的 IPC 方法、新的 nativeTheme API,以及更多!


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

重要變更

  • 堆疊升級

    堆疊Electron 6 中的版本Electron 7 中的版本新功能
    Chromium76.0.3809.14678.0.3905.177, 78
    V87.67.87.7, 7.8
    Node.js12.4.012.8.112.5, 12.6, 12.7, 12.8, 12.8.1
  • 新增了 Windows on Arm (64 位元) 版本。 #18591, #20112

  • 新增了 ipcRenderer.invoke()ipcMain.handle() 以用於非同步請求/回應式 IPC。強烈建議使用這些方法,而不是 remote 模組。請參閱此"Electron 的「remote」模組被認為有害"部落格文章以了解更多資訊。 #18449

  • 新增了 nativeTheme API 以讀取並回應作業系統主題和色彩配置的變更。 #19758, #20486

  • 切換至新的 TypeScript 定義產生器。產生的定義更加精確;因此,如果您的 TypeScript 建置失敗,這可能是原因所在。 #18103

請參閱7.0.0 版本注意事項,以取得更長的變更清單。

重大變更

關於這些和未來變更的更多資訊,請參閱計畫的重大變更頁面。

  • 已移除已棄用的 API
    • 現在使用 Promise 的函式的基於回呼的版本。 #17907
    • Tray.setHighlightMode() (macOS)。 #18981
    • app.enableMixedSandbox() #17894
    • app.getApplicationMenu(),
    • app.setApplicationMenu(),
    • powerMonitor.querySystemIdleState(),
    • powerMonitor.querySystemIdleTime(),
    • webFrame.setIsolatedWorldContentSecurityPolicy(),
    • webFrame.setIsolatedWorldHumanReadableName(),
    • webFrame.setIsolatedWorldSecurityOrigin() #18159
  • Session.clearAuthCache() 不再允許篩選清除的快取項目。 #17970
  • macOS 上的原生介面(選單、對話框等)現在會自動符合使用者電腦上的黑暗模式設定。 #19226
  • 更新了 electron 模組以使用 @electron/get。現在支援的最低 Node 版本是 Node 8。 #18413
  • 檔案 electron.asar 不再存在。任何依賴其存在的封裝指令碼都應更新。 #18577

終止對 4.x.y 的支援

根據專案的支援原則,Electron 4.x.y 已終止支援。 建議開發人員和應用程式升級至較新版本的 Electron。

應用程式回饋計畫

我們持續使用我們的應用程式回饋計畫進行測試。參與此計畫的專案會在他們的應用程式上測試 Electron Beta 版;而他們找到的新錯誤會優先處理以用於穩定版本。如果您想參與或了解更多資訊,請查看我們關於此計畫的部落格文章

下一步是什麼

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

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

Electron 6.0.0

·4 分鐘閱讀

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


新功能

今天標誌著 Electron 專案的首創:這是我們第一次與相應的Chrome 穩定版本在同一天發布穩定的 Electron 版本!🎉

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

此版本還包括 Electron API 的改進。 版本注意事項 有更完整的清單,但以下是一些重點

Promise 化

Electron 6.0 延續了在 5.0 版本開始的現代化倡議,以改進對 Promise 的支援。

這些函式現在會回傳 Promise,並仍然支援較舊的回呼式呼叫方式。

  • contentTracing.getCategories() #16583
  • contentTracing.getCategories() #16583
  • contentTracing.getTraceBufferUsage() #16600
  • contents.executeJavaScript() #17312
  • cookies.flushStore() #16464
  • cookies.get() #16464
  • cookies.remove() #16464
  • cookies.set() #16464
  • dialog.showCertificateTrustDialog() #17181
  • inAppPurchase.getProducts() #17355
  • inAppPurchase.purchaseProduct()#17355
  • netLog.stopLogging() #16862
  • session.clearAuthCache() #17259
  • session.clearCache() #17185
  • session.clearHostResolverCache() #17229
  • session.clearStorageData() #17249
  • session.getBlobData() #17303
  • session.getCacheSize() #17185
  • session.resolveProxy() #17222
  • session.setProxy() #17222
  • webContents.hasServiceWorker() #16535
  • webContents.printToPDF() #16795
  • webContents.savePage() #16742
  • webFrame.executeJavaScript() #17312
  • webFrame.executeJavaScriptInIsolatedWorld() #17312
  • webviewTag.executeJavaScript() #17312

這些函式現在有兩種形式:同步和基於 Promise 的非同步。

  • dialog.showMessageBox()/dialog.showMessageBoxSync() #17298
  • dialog.showOpenDialog()/dialog.showOpenDialogSync() #16973
  • dialog.showSaveDialog()/dialog.showSaveDialogSync() #17054

這些函式現在會回傳 Promise。

Electron Helper (Renderer).appElectron Helper (GPU).appElectron Helper (Plugin).app

為了啟用硬化執行階段,它限制了諸如可寫可執行記憶體和載入由不同團隊 ID 簽署的程式碼等功能,需要授予 Helper 特殊的程式碼簽署權利。

為了將這些權利限制在需要它們的進程類型中,Chromium 新增了三種新的 Helper 應用程式變體:一個用於渲染器 (Electron Helper (Renderer).app),一個用於 GPU 進程 (Electron Helper (GPU).app),一個用於外掛程式 (Electron Helper (Plugin).app)。

使用 electron-osx-sign 對 Electron 應用程式進行程式碼簽署的使用者不應需要對其建置邏輯進行任何變更。如果您使用自訂腳本對應用程式進行程式碼簽署,則應確保這三個新的 Helper 應用程式已正確簽署。

為了使用這些新的 Helper 正確封裝應用程式,您需要使用 electron-packager@14.0.4 或更高版本。如果您使用 electron-builder,則應追蹤此問題,以了解對這些新 Helper 的支援情況。

重大變更

  • 此版本開始為未來的一項要求奠定基礎,即在渲染器進程中載入的原生 Node 模組必須是 N-APIContext Aware。此變更的原因是更快的效能、更強的安全性以及減少維護工作量。請在此問題中閱讀完整詳細資訊,包括建議的時間表。預計此變更將在 Electron v11 中完成。

  • net.IncomingMessage 標頭已略微變更,以更密切地符合 Node.js 行為,特別是 set-cookie 的值以及如何處理重複的標頭。 #17517

  • shell.showItemInFolder() 現在會回傳 void,並且是一個非同步呼叫。#17121

  • 應用程式現在必須在使用 app.getPath('log') 之前,呼叫新的函式 app.setAppLogPath() 來明確設定記錄路徑。#17841

結束對 3.x.y 的支援

根據我們的支援政策,3.x.y 已達到生命週期結束。鼓勵開發人員和應用程式升級到較新版本的 Electron。

應用程式回饋計畫

我們持續使用我們的應用程式回饋計畫進行測試。參與此計畫的專案會在他們的應用程式上測試 Electron Beta 版;而他們找到的新錯誤會優先處理以用於穩定版本。如果您想參與或了解更多資訊,請查看我們關於此計畫的部落格文章

下一步是什麼

在短期內,您可以預期團隊將繼續專注於跟上組成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發。儘管我們謹慎地不對發布日期做出承諾,但我們的計劃是每季大約發布包含這些元件新版本的新主要 Electron 版本。暫定的 7.0.0 時程概述了 Electron 7 開發生命週期的關鍵日期。此外,請參閱我們的版本控制文件,以了解有關 Electron 中版本控制的更詳細資訊。

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