跳至主要內容

Maintainer Summit 2022 回顧

·5 分鐘閱讀

上個月,Electron 的維護者團隊在加拿大溫哥華會面,討論了該專案 2023 年及以後的發展方向。在會議室的四天裡,核心維護者和受邀的合作者討論了新的計畫、維護痛點和一般專案健全度。

團體照!由 @groundwater 拍攝。

未來,團隊仍將全力投入定期和快速的 Chromium 升級、修復錯誤,並使 Electron 對所有人來說更加安全和高效能。我們也有幾個令人興奮的專案正在進行中,很樂意與社群分享!

變革性的新 API

Electron 專案中需要共識的主要 API 提案會經過意見徵求 (RFC) 流程,由我們的 API 工作小組成員審查。

今年,我們推動了兩項主要提案,這些提案有可能為 Electron 應用程式釋放新的功能維度。這些提案具有高度實驗性,但這裡可以預覽一下預期的內容!

新的原生附加元件增強功能 (C API)

此提案概述了新的 Electron C API 層,可讓應用程式開發人員編寫自己的原生 Node 附加元件,這些元件與 Electron 的內部資源介面,類似於 Node 自己的 Node-API。有關建議的新 API 的更多資訊可以在這裡找到

範例:使用 Chromium 資源增強應用程式功能

許多 Electron 應用程式維護自己的分支,以便直接與 Chromium 內部元件互動,否則使用原始 (未修改) 的 Electron 將無法存取這些內部元件。透過在 C API 層中公開這些資源,此程式碼可以改為作為原生模組與 Electron 並存,從而可能減輕應用程式開發人員的維護負擔。

公開 Chromium 的 UI 層 (Views API)

在幕後,Chrome 使用者介面 (UI) 的非網站部分 (例如工具列、索引標籤或按鈕) 是使用稱為 Views 的框架建置的。Views API 提案將此框架的部分內容作為 Electron 中的 JavaScript 類別引入,最終目標是讓開發人員能夠在其 Electron 應用程式中建立非 Web UI 元素。這將防止應用程式不得不湊合使用 Web 內容。

使這組新 API 成為可能的基本工作目前正在進行中。以下是您在不久的將來可以預期的一些第一件事。

範例:使用 WebContentsView 重構視窗模型

我們計劃的第一個變更是將 Chrome 的 WebContentsView 公開到 Electron 的 API 表面,這將成為我們現有 BrowserView API 的後繼者 (儘管名稱如此,但它是與 Chromium Views 無關的 Electron 特定程式碼)。隨著 WebContentsView 的公開,我們將擁有一個可重複使用的 View 物件,可以顯示 Web 內容,為使 BrowserWindow 類別成為純 JavaScript 並消除更多程式碼複雜性打開了大門。

儘管此變更並未向應用程式開發人員提供許多新功能,但它是一個大型重構,它消除了幕後的大量程式碼,簡化了 Chromium 升級,並降低了主要版本之間出現新錯誤的風險。

如果您是應用程式中使用 BrowserView 的 Electron 開發人員:別擔心,我們沒有忘記您!我們計劃將現有的 BrowserView 類別作為 WebContentsView 的填充程式,為您轉換到較新的 API 時提供緩衝。

請參閱:electron/electron#35658

範例:使用 ScrollView 的可捲動 Web 內容

我們在 Stack 的朋友一直在推動將 Chromium ScrollView 元件公開到 Electron 的 API。透過這個新的 API,任何子 View 元件都可以水平或垂直捲動。

儘管這個新的 API 只實現了一個較小的功能,但團隊的最終目標是建置一組實用 View 元件,可以作為工具包來建置更複雜的非 HTML 介面。

參與其中

您是對這兩個 API 提案感興趣的 Electron 應用程式開發人員嗎?儘管我們還沒有準備好接收額外的 RFC,請持續關注未來更多的詳細資訊!

Electron Forge v6 穩定版本發佈

自框架建立以來,Electron 的建置工具生態系統主要由社群推動,並且由許多小型單用途套件 (例如 electron-winstaller、electron-packager、electron-notarize、electron-osx-sign) 組成。儘管這些工具運作良好,但對於使用者來說,將工作建置管道拼接在一起令人望而卻步。

為了幫助 Electron 開發者建立更友善的體驗,我們打造了 Electron Forge,這是一個整合所有現有工具的單一解決方案。雖然 Forge 自 2017 年以來就一直在開發中,但該專案在過去幾年中一直處於休眠狀態。然而,鑑於社群對於 Electron 中建置工具的狀態的回饋,我們一直在努力發布下一代穩定的 Forge 主要版本。

Electron Forge 6 具有一流的 TypeScript 和 Webpack 支援,以及一個可擴展的 API,允許開發人員建立自己的外掛程式和安裝程式。

請持續關注:即將發布公告

如果您有興趣使用 Forge 建立專案,或使用 Forge 可擴展的第三方 API 建立範本或外掛程式,請持續關注我們將於本月稍晚發布的 Forge v6 穩定版本的官方公告!

下一步是什麼?

除了上述內容,團隊一直在思考一系列探索性專案,以改善應用程式開發人員和最終使用者的 Electron 體驗。更新工具、API 審查流程和增強的文件是我們正在嘗試的其他事項。我們希望在不久的將來分享更多消息!