🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

Electron 發佈 39 版本,這更新速度也變態了吧❓︎❓︎❓︎

最近在使用 NestJs 和 NextJs 在做一個協同文檔 DocFlow,如果感興趣,歡迎 star,有任何疑問,歡迎加我微信進行諮詢 yunmz777

Electron 39.0.0 於 2025 年 10 月 27 日發佈。此版本帶來了對 Chromium、Node.js 和 V8 引擎的更新,提升了性能和穩定性,同時也引入了一些新的功能和改進。以下是此版本的詳細變化。

棧升級

  • Chromium: 更新到 142.0.7444.52,這意味著 Electron 在此版本中升級了其底層瀏覽器引擎。該版本修復了多個性能和安全漏洞,同時引入了一些新的 Web 標準。
  • Node.js: 更新到 22.20.0,這個版本包含了許多重要的 Node.js 修復和改進,包括性能優化和一些新的 API。
  • V8: 更新到 14.2,V8 引擎的升級提升了 JavaScript 執行的效率,使得應用程式的響應速度更快,記憶體佔用更低。

破壞性更改

在這一版本中,有幾個 API 和行為發生了變化,這可能會導致與以前版本的相容性問題。

  • OffscreenSharedTexture:此 API 的簽名進行了更新,新的版本提供了一個統一的 handle,用於持有原生句柄。這意味著開發者需要調整程式碼,以便正確使用這個新的介面。
  • window.open:該方法的行為得到修復,確保它創建的彈出窗口始終是可調整大小的。原本可能出現的不一致性問題已經被解決,確保符合標準規範。

新特性

  • Offscreen 渲染支援 RGBAF16:Electron 現在支援以 RGBAF16 格式輸出圖像數據。這意味著應用程式可以更好地支援高動態範圍(HDR)圖像,提供更高品質的圖像渲染。
  • process.getSystemMemoryInfo() 增強:在 macOS 上,getSystemMemoryInfo 方法新增了 fileBackedpurgeable 欄位,這讓開發者能夠獲得更多關於系統記憶體的信息,包括哪些記憶體是文件映射的、哪些可以被清除以釋放空間。
  • systemPreferences.getAccentColor:在 Linux 上,Electron 新增了一個方法 systemPreferences.getAccentColor,它返回操作系統的強調色。這對於需要與操作系統主題顏色匹配的應用程式很有用。
  • 托盤圖標 guid 選項:在 macOS 上,Tray 構造函數現在支援一個新的 guid 選項。這個選項允許托盤圖標在應用程式重新啟動後保持相同的位置和狀態,使得使用者體驗更加一致。
  • WebFrameMain API 增強:Electron 新增了 webFrameMain.fromFrameToken(processId, frameToken) 方法,開發者可以通過此方法從幀令牌獲取 WebFrameMain 實例,這對於需要直接操作特定幀的應用程式非常有用。
  • 可存取性支援:Electron 引入了更細粒度的可存取性支援,包括為開發者提供更多的 API 來提高對殘障人士的支援。這使得應用程式能更好地滿足可存取性需求,提供更加友好的使用者體驗。
  • app.getRecentDocuments() 支援:在 Windows 和 macOS 上,Electron 現在支援 app.getRecentDocuments() 方法。通過這個方法,開發者可以獲取到最近訪問的文檔列表,方便實現類似於「最近使用文件」的功能。
  • USB 裝置 API 更新:Electron 新增了對 USBDevice.configurations 的支援。開發者現在可以獲得連接到裝置的 USB 配置信息,這對於需要與 USB 裝置互動的應用程式非常有用。
  • 文件系統 API 更新:在應用程式中持久化文件系統權限狀態變得更加簡單。Electron 允許在給定的會話內持久化文件系統授權狀態,避免使用者每次打開應用時重新授權。
  • 動態導入(ESM)支援:在非上下文隔離的預載入腳本中,Electron 現在支援動態導入 ECMAScript 模組(ESM)。這使得開發者能夠在 Electron 中更靈活地使用 JavaScript 模組化。

修復

  • 系統配色問題修復:修復了 systemPreferences.getAccentColor 返回的顏色反轉的問題,確保返回的顏色值符合預期。
  • 開發者工具:修復了在 Wayland 上調用 webContents.openDevTools({ mode: 'detach' }) 時可能導致的崩潰問題。Wayland 是 Linux 上的一種顯示協議,這個修復對於在該平台上開發的 Electron 應用程式至關重要。
  • 會話管理問題:修復了訪問 webContents.session 時可能導致崩潰的問題。這個修復增強了應用程式在多會話環境下的穩定性。
  • 窗口管理:修復了在調用 window.close() 後,執行某些操作可能導致崩潰的問題。這個修復提高了窗口管理的可靠性。
  • 命令行參數問題修復:修復了通過命令行參數傳遞特性參數時,可能導致的崩潰問題,確保應用程式能夠穩定運行。
  • 文件對話框問題修復:修復了在 Windows 上調用 dialog.showOpenDialog 時,如果傳入的擴展名過濾器數組為空,可能導致的崩潰問題。

其他更改

  • 資源定位:內部的資源定位機制發生了變化,現在 Electron 使用 DIR_ASSETS 來定位資產和資源。此外,app.getPath 方法現在支援返回一個新的 "assets" 鍵,用於獲取應用程式資源路徑。
  • 文檔更新:官方文檔得到了更新和補充,相關的 API 和功能進行了詳細說明,開發者可以參考最新的文檔了解更多實現細節。

總結

Electron 39.0.0 版本主要帶來了對 Chromium、Node.js 和 V8 的升級,提升了性能和穩定性。此外,新增了對 Offscreen 渲染、系統主題色、USB 裝置支援等的支援,也修復了多個與窗口管理、文件對話框等相關的 bug。對於開發者來說,這些更新和改進能夠帶來更高效、穩定的開發體驗。


原文出處:https://juejin.cn/post/7566885041043046434


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝22   💬5   ❤️7
708
🥈
我愛JS
📝2   💬7   ❤️3
119
🥉
酷豪
1
#5
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付