Electron 6.0發佈了,帶來4項重大改進!

Electron 6.0發佈了,帶來4項重大改進!

image.png




源自 | Electron Blog譯者 | 王強編輯 | Yonie

Electron 團隊剛剛發佈了 Electron 6.0.0。你能夠經過 npm install electron@latest 安裝或從發佈網站下載。新版本包含許多升級、修復和一些新功能。前端

新內容

今天 Electron 項目第一次在發佈 Electron 穩定版的同日發佈對應的 Chrome 穩定版: https://www.chromestatus.com/features/schedulenode

Electron 的大部分功能都是由 Chromium、Node.js 和 V8 的核心組件提供的。Electron 與這些項目保持同步,爲用戶提供最新的 JavaScript 功能、性能改進和安全修復程序。這些包在 Electron 6 中都有主要版本更新:git

  • Chromium 76.0.3809.88github

    • 74 版更新內容: https://developers.google.com/web/updates/2019/04/nic74web

    • 75 版更新內容: https://developers.google.com/web/updates/2019/06/nic75chrome

    • 76 版更新內容: https://developers.google.com/web/updates/2019/07/nic76shell

  • Node.js 12.4.0npm

    • Node 12.4.0 博文:
      https://nodejs.org/en/blog/release/v12.4.0/小程序

  • V8 7.6.303.22api

    • V8 7.6 博文:
      https://v8.dev/blog/v8-release-76

此版本還包括對 Electron API 的改進。完整列表可參閱發行說明: https://github.com/electron/electron/releases/tag/v6.0.0

下面挑一些亮點介紹:

 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:

  • app.dock.show() #16904

 Electron Helper (Renderer).app、Electron Helper (GPU).app 和 Electron Helper (Plugin).app

爲了啓用強化運行時來限制可寫可執行內存和加載由其餘團隊 ID 簽名的代碼等,須要向 Helper 授予特殊代碼簽名權利。

爲了將這些權利限定在須要它們的流程類型上,Chromium 添加了三個新的 Helper 應用程序變體:一個用於渲染器(Electron Helper(Renderer).app),一個用於 GPU 進程(Electron Helper(GPU).app) ,還有一個用於插件(Electron Helper(Plugin).app)。

使用 electron-osx-sign 對其 Electron 應用簽名(codesign)的開發者不該該對其構建邏輯進行任何更改。若是你使用自定義腳本對應用簽名,則應確保三個新的 Helper 應用程序已正確簽名。

爲了使用這些新 helper 正確打包你的應用程序,你須要使用electron-packager@14.0.4 或更高版本。若是你使用的是 electron-builder,則需參閱此處獲取支持: https://github.com/electron-userland/electron-builder/issues/4104

重大改進

  • 此版本還爲從此的需求打下了基礎,要求加載在渲染器進程內的原生 Node 模塊要麼是 N-API,要麼 Context Aware。這一改進可帶來更高的性能、更強的安全性和更少的維護工做量。詳細信息參閱此處: https://github.com/electron/electron/issues/18397。此更改預計將在 Electron v11 中完成。

  • net.IncomingMessage 標頭稍微改動,以更好地匹配 Node.js 行爲,特別是 set-cookie 的值以及重複標頭的處理方式。#17517。

  • shell.showItemInFolder() 如今返回 void 而且是異步調用。#17121

  • 應用程序如今必須在使用 app.getPath('log') 以前調用新函數 app.setAppsLogPath() 來顯式設置日誌路徑。#17841

3.x.y 支持終止

根據官方支持政策,3.x.y 的生命週期已達終點。官方鼓勵開發人員和應用程序升級到更新版本的 Electron。

應用反饋計劃

官方繼續使用應用反饋計劃進行測試。參與此計劃的項目會在其應用上測試 Electron 測試版;做爲回報,他們發現的新錯誤會在穩定版本中優先處理。若是你想參與或瞭解更多信息,請查看關於該計劃的博客文章: https://electronjs.org/blog/app-feedback-program

將來計劃

短時間來看,官方團隊會繼續升級 Electron 的主要組件,包括 Chromium、Node 和 V8。團隊計劃大約每季度發佈一次新版本,每次都會升級各大組件。7.0.0 版本的暫定計劃(詳見下方連接)列出了 Electron 7 開發週期中的關鍵時點。還可參閱官方版本控制文檔,獲取有關 Electron 版本的更多信息: https://electronjs.org/docs/tutorial/electron-versioning

7.0.0 版本的暫定計劃: https://electronjs.org/docs/tutorial/electron-timelines

關於將來的 Electron 版本中計劃的重大變動,請參閱重大變動計劃文檔: https://github.com/electron/electron/blob/master/docs/api/breaking-changes.md

英文原文: http://electronjs.org/blog/electron-6-0

 活動推薦

伴隨着雲 + 端、Serverless、小程序等的發展,必然會給前端帶來更大的場景與機會。但前端領域的迭代速度之快,更需對體系及應用有總體的把握,在這個基礎上深刻各個技能分支,有計劃地系統學習,效率要高得多。

極客時間聚集 100+ 一線技術專家分享最佳實踐,幫你提高研發綜合實力。2019 已過半,除了績效考覈,該給團隊充充電了。現可經過「企業帳號」進行充值,員工自主選課,團隊一塊兒學習提高技術實力。

相關文章
相關標籤/搜索