跳到主要內容

9 篇標籤為「Ecosystem」的文章

「關於 Electron 套件生態系統的部落格文章」

檢視所有標籤

將我們的生態系統遷移至 Node 22

·2 分鐘閱讀

在 2025 年初,Electron 的 npm 生態系統儲存庫(在 @electron/@electron-forge/ 命名空間下)將遷移到 Node.js 22 作為最低支援版本。


這代表什麼?

過去,Electron 的 npm 生態系統(Forge、Packager 等)中的套件支援 Node 版本的時間盡可能長,即使版本已達到其生命週期結束 (EOL) 日期。這樣做是為了確保我們不會分散生態系統 — 我們理解許多專案都依賴舊版本的 Node,而且我們不希望冒著讓這些專案擱淺的風險,除非有迫切的理由需要升級。

隨著時間的推移,由於以下幾個原因,使用 Node.js 14 作為我們的最低版本變得越來越困難

  • 缺乏官方的 Node.js 14 macOS ARM64 建置,需要我們維護 CI 基礎結構的變通方法,才能提供完整的測試涵蓋範圍。
  • 上游套件相依性的 engines 需求已向前推進,使得透過相依性提升來解決供應鏈安全性問題變得越來越困難。

此外,較新版本的 Node.js 包含許多我們希望利用的改進,例如執行階段原生的常見公用程式(例如 fs.globutil.parseArgs)以及全新的內建模組(例如 node:testnode:sqlite)。

為什麼現在要升級?

在 2024 年 7 月,Electron 的生態系統工作組決定將所有套件升級到支援同步 ESM 圖表 require() 的最早 Node 版本(請參閱 nodejs/node#51977nodejs/node#53500),在該版本達到其 LTS 日期後的未來時間點進行。

我們已決定將該更新時間設定為 2025 年 1 月/2 月。在發生此升級之後,Node 22 將成為現有生態系統套件中最低支援的版本。

我需要採取什麼行動?

我們將盡力維持盡可能高的相容性。不過,為了確保最佳支援,我們建議您將應用程式升級到 Node 22 或更高版本。

請注意,專案中執行的 Node 版本與嵌入到目前 Electron 版本中的 Node 版本無關。

接下來是什麼

如果您有任何疑問或疑慮,請隨時寫信給我們:info@electronjs.org。您也可以在我們的官方 Electron Discord 中找到社群支援。

2023 年生態系統回顧

·5 分鐘閱讀

回顧 2023 年 Electron 開發人員生態系統的改進和變更。


在過去幾個月中,我們一直在 Electron 生態系統中醞釀一些變更,以增強 Electron 應用程式的開發人員體驗!以下是直接來自 Electron 總部的最新新增功能的快速摘要。

Electron Forge 7 及更高版本

Electron Forge 7 — 我們用於封裝和散發 Electron 應用程式的一體化工具的最新主要版本 — 現已推出。

雖然 Forge 6 是從 v5 完全重寫的,但 v7 的範圍較小,但仍然包含一些重大變更。未來,我們將繼續發布 Forge 的主要版本,因為需要進行重大變更。

如需更多詳細資訊,請參閱 GitHub 上完整的 Forge v7.0.0 變更記錄

重大變更

  • 切換到 notarytool 以進行 macOS 公證:自 2023-11-01 起,Apple 為 macOS 公證停用舊版 altool,此版本完全將其從 Electron Forge 中移除。
  • 最低 Node.js 版本增加到 v16.4.0:在此版本中,我們已將最低要求的 Node.js 版本設定為 16.4.0。
  • 已捨棄對 electron-prebuiltelectron-prebuilt-compile 的支援electron-prebuilt 是 Electron npm 模組的原始名稱,但在 v1.3.1 中被 electron 取代。electron-prebuilt-compile 是該二進位檔案的替代方案,其中包含增強的 DX 功能,但最終作為專案遭到放棄。

重點

  • Google Cloud Storage 發行者作為我們更好地支援靜態自動更新的推動的一部分,Electron Forge 現在支援直接發布到 Google Cloud Storage!
  • ESM forge.config.js 支援: Electron Forge 現在支援 ESM 格式的 forge.config.js 檔案。(附註:敬請期待 Electron 28 中對 ESM 進入點的支援。)
  • Makers 現在平行運行: 在 Electron Forge 6 中,Makers 為了 ✨ 傳統 ✨ 原因而循序運行。從那時起,我們測試了 Make 步驟的平行化,沒有任何不良副作用,因此在為同一平台建置多個目標時,您應該會看到速度提升!
謝謝!

🙇 非常感謝 mahnunchik 對 GCS 發佈者和 Forge 組態中 ESM 支援的貢獻!

更好的靜態儲存自動更新

Squirrel.Windows 和 Squirrel.Mac 是特定於平台的更新技術,它們支援 Electron 內建的 autoUpdater 模組。這兩個專案都支援透過兩種方法進行自動更新

  • 與 Squirrel 相容的更新伺服器
  • 託管在靜態儲存供應商上的資訊清單 URL(例如 AWS、Google Cloud Platform、Microsoft Azure 等)

傳統上,更新伺服器方法一直是 Electron 應用程式的建議方法(並提供對更新邏輯的額外自訂),但它有一個主要的缺點,即如果應用程式是封閉原始碼,則需要應用程式維護自己的伺服器執行個體。

另一方面,靜態儲存方法一直都是可行的,但在 Electron 內部沒有文件記錄,並且在 Electron 工具套件中支援不佳。

透過 @MarshallOfSound 的一些出色工作,無伺服器自動應用程式更新的更新故事得到了大幅簡化

  • Electron Forge 的 Zip 和 Squirrel.Windows makers 現在可以設定為輸出與 autoUpdater 相容的更新資訊清單。
  • 新主要版本的 update-electron-app (v2.0.0) 現在可以讀取這些產生的資訊清單,作為 update.electronjs.org 伺服器的替代方案。

一旦您的 Makers 和 Publishers 設定為將更新資訊清單上傳到雲端檔案儲存,您只需幾行設定即可啟用自動更新

const { updateElectronApp, UpdateSourceType } = require('update-electron-app');

updateElectronApp({
updateSource: {
type: UpdateSourceType.StaticStorage,
baseUrl: `https://my-manifest.url/${process.platform}/${process.arch}`,
},
});
進一步閱讀

📦 想了解更多嗎?如需詳細指南,請參閱 Forge 的自動更新文件

@electron/ 擴展宇宙

當 Electron 剛開始時,社群發布了許多套件來增強開發、封裝和發布 Electron 應用程式的體驗。隨著時間的推移,其中許多套件被納入 Electron 的 GitHub 組織中,核心團隊承擔了維護的責任。

在 2022 年,我們開始將所有這些第一方工具統一在 npm 上的 @electron/ 命名空間下。此變更表示以前使用 electron-foo 的套件現在在 npm 上為 @electron/foo,而以前名為 electron/electron-foo 的儲存庫現在在 GitHub 上為 electron/foo。這些變更有助於清楚地劃分第一方專案與使用者專案。這包括許多常用的套件,例如

  • @electron/asar
  • @electron/fuses
  • @electron/get
  • @electron/notarize
  • @electron/osx-sign
  • @electron/packager
  • @electron/rebuild
  • @electron/remote
  • @electron/symbolicate-mac
  • @electron/universal

展望未來,我們發布的所有第一方套件也將在 @electron/ 命名空間中。此規則有兩個例外

  • Electron 核心將繼續在 electron 套件下發布。
  • Electron Forge 將繼續在其 @electron-forge/ 命名空間下發布其所有單一儲存庫套件。
尋求星星

⭐ 在此過程中,我們也不小心將 electron/packager 儲存庫設為私人,這產生了消除我們 GitHub 星星數量的遺憾副作用(在消除之前超過 9000 顆)。如果您是 Packager 的活躍使用者,我們將感謝您給予 ⭐ 星星 ⭐!

推出 @electron/windows-sign

從 2023-06-01 開始,業界標準開始要求將 Windows 程式碼簽署憑證的金鑰儲存在符合 FIPS 標準的硬體上。

實際上,這意味著對於在 CI 環境中建置和簽署的應用程式來說,程式碼簽署變得更加困難,因為許多 Electron 工具會將憑證檔案和密碼作為設定參數,並嘗試使用硬式編碼的邏輯從那裡進行簽署。

這種情況一直是 Electron 開發人員的一個常見痛點,這就是為什麼我們一直致力於尋找更好的解決方案,將 Windows 程式碼簽署隔離到其自身的獨立步驟中,類似於 @electron/osx-sign 在 macOS 上所做的事情。

未來,我們計劃將此套件完全整合到 Electron Forge 工具鏈中,但它目前是獨立存在的。此套件目前可透過 npm install --save-dev @electron/windows-sign 進行安裝,並且可以透過程式設計方式或透過 CLI 使用。

請嘗試一下,並在 儲存庫的問題追蹤器 中向我們提供您的意見回饋!

接下來是什麼?

我們將於下個月進入一年一度的 12 月靜默期。在我們這樣做時,我們將思考如何在 2024 年讓 Electron 開發體驗變得更好。

您希望我們接下來處理什麼?請告訴我們!

推出 Electron Forge 6

·閱讀時間 6 分鐘

我們很高興宣布 Electron Forge v6.0.0 現已推出!此版本標誌著 Forge 自 2018 年以來的第一個主要版本發布,並將專案從 electron-userland 移至 Github 上的主要 electron 組織。

繼續閱讀以了解新功能以及您的應用程式如何採用 Electron Forge!

什麼是 Electron Forge?

Electron Forge 是一種用於封裝和發布 Electron 應用程式的工具。它將 Electron 的建置工具生態系統整合到單一可擴展的介面中,以便任何人都可以直接開始製作 Electron 應用程式。

重點功能包括

  • 📦 應用程式封裝和程式碼簽署
  • 🚚 Windows、macOS 和 Linux 上可自訂的安裝程式 (DMG、deb、MSI、PKG、AppX 等)
  • ☁️ 雲端供應商的自動發布流程(GitHub、S3、Bitbucket 等)
  • ⚡️ 適用於 webpack 和 TypeScript 的易於使用的樣板範本
  • ⚙️ 原生 Node.js 模組支援
  • 🔌 可擴展的 JavaScript 外掛程式 API
進一步閱讀

請參訪 為什麼選擇 Electron Forge 解釋文件,以了解更多關於 Forge 的哲學和架構。

v6 的新功能?

完全重寫

從 v1 到 v5,Electron Forge 是基於現已停止的 electron-compile 專案。Forge 6 是專案的完全重寫,具有新的模組化架構,可以擴展以滿足任何 Electron 應用程式的需求。

在過去幾年中,Forge v6.0.0-beta 已達到與 v5 的功能對等,並且程式碼變動已大幅減緩,使該工具準備好被普遍採用。

不要安裝錯誤的套件

對於 5 及更早版本,Electron Forge 已發布到 npm 上的 electron-forge 套件。從 v6 重寫開始,Forge 改為結構化的單一儲存庫專案,包含許多較小的專案。

正式支援

從歷史上看,Electron 維護人員對建置工具保持不置可否的態度,將任務留給各種社群套件。然而,隨著 Electron 作為一個專案的成熟,新的 Electron 開發人員更難了解他們需要哪些工具來建置和發布他們的應用程式。

為了幫助引導 Electron 開發人員完成發布流程,我們已決定將 Forge 作為 Electron 官方的內含所有功能的建置管道

在過去一年中,我們一直慢慢將 Forge 整合到官方 Electron 文件中,並且我們最近將 Forge 從其在 electron-userland/electron-forge 中的舊家移至 electron/forge 儲存庫。現在,我們終於準備好向一般大眾發布 Electron Forge!

開始使用

初始化新的 Forge 專案

可以使用 create-electron-app CLI 指令碼來架設新的 Electron Forge 專案。

yarn create electron-app my-app --template=webpack
cd my-app
yarn start

該指令碼將在 my-app 資料夾中建立一個 Electron 專案,其中包含完整的 JavaScript 捆綁和預先設定的建置管道。

如需更多資訊,請參閱 Forge 文件中的入門指南

一流的 webpack 支援

上面的程式碼片段使用了 Forge 的 Webpack 範本,我們建議將其作為新 Electron 專案的起點。此範本是基於 @electron-forge/plugin-webpack 外掛程式構建的,該外掛程式以多種方式將 webpack 與 Electron Forge 集成,包括:

  • 透過 webpack-dev-server 增強本地開發流程,包括支援渲染器中的 HMR;
  • 處理應用程式封裝之前的 webpack 捆綁包的建置邏輯;以及
  • 在 webpack 捆綁過程中新增對 Native Node 模組的支援。

如果您需要 TypeScript 支援,請考慮改用 Webpack + TypeScript 範本

匯入現有專案

Electron Forge CLI 也包含用於現有 Electron 專案的匯入命令。

cd my-app
yarn add --dev @electron-forge/cli
yarn electron-forge import

當您使用 import 命令時,Electron Forge 將新增一些核心相依性並建立新的 forge.config.js 設定。如果您有任何現有的建置工具(例如 Electron Packager、Electron Builder 或 Forge 5),它會嘗試盡可能遷移多個設定。您的一些現有設定可能需要手動遷移。

手動遷移的詳細資訊可以在 Forge 的匯入文件中找到。如果您需要協助,請到我們的 Discord 伺服器看看!

為何切換到 Forge?

如果您已經有封裝和發佈 Electron 應用程式的工具,採用 Electron Forge 的好處仍然可能超過初始切換成本。

我們認為使用 Forge 有兩個主要好處:

  1. 一旦 Electron 支援,Forge 就會收到應用程式建置的新功能。在這種情況下,您不需要自己連線新的工具支援,或等待其他套件最終實作該支援才能升級。如需最近的範例,請參閱macOS 通用二進位檔ASAR 完整性檢查

  2. Forge 的多套件架構使其易於理解和擴充。由於 Forge 由許多責任明確的小型套件組成,因此更容易遵循程式碼流程。此外,Forge 的可延伸 API 設計表示您可以針對進階使用案例,編寫自己的額外建置邏輯,與提供的設定選項分開。如需編寫自訂 Forge 外掛程式、製作器和發行者的更多詳細資訊,請參閱文件中的擴充 Electron Forge章節。

重大變更

Forge 6 在 Beta 階段花費了很長時間,其發佈節奏逐漸放慢。但是,我們在 2022 年下半年加速了開發,並使用最後幾個版本在 v6.0.0 穩定版發佈之前,推出了一些最終的重大變更。

如果您是 Electron Forge 6 Beta 使用者,請參閱 v6.0.0 GitHub 版本說明,以取得最近 Beta 版 (>=6.0.0-beta.65) 中所做的重大變更清單。

完整的變更和提交清單可以在存放庫的 CHANGELOG.md 中找到。

提交您的意見反應!

告訴我們您需要什麼!Electron Forge 團隊一直在努力建置專案,以更好地滿足使用者的需求。

您可以透過提交功能請求、發佈問題,或只是讓我們知道您的意見反應,來協助我們改進 Electron Forge!您也可以加入官方 Electron Discord 伺服器,其中有 Electron Forge 討論的專用頻道。

如果您想針對 https://electronforge.dev.org.tw 上的 Forge 文件提供任何意見反應,我們有一個與 electron-forge/electron-forge-docs 存放庫同步的 GitBook 實例。

Spectron 淘汰通知

·2 分鐘閱讀

Spectron 將於 2022 年 2 月 1 日停止使用。


從 2022 年 2 月開始,Spectron 將被 Electron 團隊正式宣告停止使用

為何要停用 Spectron?

雖然 Spectron 始終為每個新版本的 Electron 發佈新版本,但該專案一年多以來幾乎沒有維護和改進,目前沒有全職維護人員。隨著遠端模組移出 Electron 核心並移至 Electron 14 中的外部模組,Spectron 將需要大幅重寫才能繼續可靠地運作。

在審查 Spectron 持續維護的幾個可用選項之後,Electron 團隊已決定在 2022 年停用 Spectron。

停用時程

以下是我們計畫的停用時程:

  • 2021 年 11 月 - 2022 年 1 月:Electron 團隊將繼續接受社群的提取請求。
  • 2022 年 1 月:將發佈關於 Spectron 停用的最終公告警告版本。
  • 2022 年 2 月 1 日:Spectron 的存放庫將標記為「已封存」。將不再接受提取請求。

在 2022 年 2 月 1 日之後,Electron 將繼續無限期地保留 Spectron 存放庫,以便其他人可以隨時分支或使用現有程式碼用於其專案。我們希望這有助於為任何可能仍然依賴 Spectron 的專案提供更長的過渡期。

Spectron 的替代方案

如果您目前在專案中使用 Spectron,並且想要遷移到替代測試解決方案,您可以閱讀我們的此處的自動化測試指南

我們目前有幾個其他建議的 Spectron 替代方案,包括 Playwright 和 WebDriverIO。每個選項的官方教學課程都可以在我們的自動化測試文件中找到。

下一步

Electron 團隊在這裡感謝您使用 Spectron 和 Electron。我們了解你們中的許多人依賴 Spectron 來測試應用程式,我們希望讓這個轉換對您來說盡可能輕鬆。感謝您選擇 Electron!

為開放原始碼應用程式提供更輕鬆的自動更新

·3 分鐘閱讀

今天,我們發佈了免費的開放原始碼託管 更新 Web 服務和配套的 npm 套件,以便為開放原始碼 Electron 應用程式輕鬆實現自動更新。這是朝向授權應用程式開發人員減少對部署的思考,並將更多精力放在為使用者開發高品質體驗的一步。


The new updater module in action

讓生活更輕鬆

Electron 有一個 autoUpdater API,讓應用程式能夠從遠端端點取用中繼資料,以檢查更新、在背景下載更新並自動安裝更新。

對於許多 Electron 應用程式開發人員來說,啟用這些更新一直是部署過程中的繁瑣步驟,因為它需要部署和維護 Web 伺服器,才能提供應用程式版本歷程記錄中繼資料。

今天,我們宣佈推出適用於應用程式自動更新的全新嵌入式解決方案。如果您的 Electron 應用程式位於公用的 GitHub 存放庫中,並且您使用 GitHub 版本來發佈組建,則可以使用此服務將持續應用程式更新傳遞給您的使用者。

使用新模組

為了最大程度地減少您的配置,我們建立了 update-electron-app,這是一個與新的 update.electronjs.org Web 服務集成的 npm 模組。

安裝模組

npm install update-electron-app

從您應用程式的主要程序中的任何位置呼叫它

require('update-electron-app')();

就這樣!該模組將在應用程式啟動時檢查更新,然後每十分鐘檢查一次。找到更新時,它會在背景自動下載,並在更新準備就緒時顯示對話方塊。

遷移現有應用程式

已經使用 Electron 的 autoUpdater API 的應用程式也可以使用此服務。若要這麼做,您可以自訂 update-electron-app 模組或直接與 update.electronjs.org 集成

替代方案

如果您使用 electron-builder 來封裝您的應用程式,您可以使用其內建更新程式。如需詳細資訊,請參閱 electron.build/auto-update

如果您的應用程式是私有的,您可能需要執行自己的更新伺服器。這方面有許多開放原始碼工具,包括 Zeit 的 Hazel 和 Atlassian 的 Nucleus。如需更多資訊,請參閱部署更新伺服器教學課程。

感謝

感謝 Julian Gruber 協助設計和建構這個簡單且可擴展的網路服務。感謝 Zeit 的團隊提供他們的開源 Hazel 服務,我們的設計靈感來自於此。感謝 Samuel Attard 進行程式碼審查。感謝 Electron 社群協助測試此服務。

🌲 祝 Electron 應用程式的未來永續發展!

宣布 Electron 中對 TypeScript 的支援

·閱讀時間 4 分鐘

electron npm 套件現在包含一個 TypeScript 定義檔,其中提供整個 Electron API 的詳細註解。即使您是撰寫原生 JavaScript,這些註解也可以改善您的 Electron 開發體驗。只需 npm install electron 即可在您的專案中取得最新的 Electron 類型定義。


TypeScript 是一種由微軟建立的開源程式語言。它是 JavaScript 的超集合,透過新增對靜態類型的支援來擴展該語言。TypeScript 社群近年來迅速成長,並且在最近的 Stack Overflow 開發人員調查中,TypeScript 被評為最受歡迎的程式語言之一。TypeScript 被描述為「可擴展的 JavaScript」,GitHubSlackMicrosoft 的團隊都在使用它來編寫數百萬人使用的可擴展 Electron 應用程式。

TypeScript 支援許多 JavaScript 中較新的語言功能,例如類別、物件解構和 async/await,但它真正的區別特徵是類型註解。宣告程式預期的輸入和輸出資料類型,可以透過協助您在編譯時找到錯誤來減少錯誤,而註解也可以作為程式運作方式的正式宣告。

當函式庫以原生 Javascript 撰寫時,類型通常會在撰寫文件時被模糊地定義為事後考量。函式通常可以接受比文件中記載的更多類型,或者函式可能具有未記載的隱形限制,這可能會導致執行階段錯誤。

TypeScript 使用定義檔來解決這個問題。TypeScript 定義檔描述函式庫的所有函式及其預期的輸入和輸出類型。當函式庫作者將 TypeScript 定義檔與其發佈的函式庫捆綁在一起時,該函式庫的使用者可以直接在他們的編輯器中瀏覽其 API,並立即開始使用它,通常不需要查閱函式庫的文件。

許多熱門專案,例如 AngularVue.jsnode-github(現在還有 Electron!)會編譯自己的定義檔並將其與其發佈的 npm 套件捆綁在一起。對於沒有捆綁自己的定義檔的專案,還有 DefinitelyTyped,一個由社群維護的第三方定義檔生態系統。

安裝

從 1.6.10 版本開始,每個版本的 Electron 都包含自己的 TypeScript 定義檔。當您從 npm 安裝 electron 套件時,electron.d.ts 檔案會自動與已安裝的套件捆綁在一起。

安裝 Electron 的最安全方法是使用確切的版本號

npm install electron --save-dev --save-exact

或者,如果您使用 yarn

yarn add electron --dev --exact

如果您已經在使用第三方定義,例如 @types/electron@types/node,您應該將它們從您的 Electron 專案中移除,以防止任何衝突。

定義檔是從我們的 結構化 API 文件衍生而來,因此它將始終與 Electron 的 API 文件保持一致。只需安裝 electron,您將始終獲得與您使用的 Electron 版本同步的最新 TypeScript 定義。

使用方式

有關如何安裝和使用 Electron 新的 TypeScript 註解的摘要,請觀看此簡短的示範螢幕錄影

如果您使用 Visual Studio Code,您已經內建了 TypeScript 支援。還有社群維護的 AtomSublimevim其他編輯器的插件。

一旦您的編輯器配置為 TypeScript,您將開始看到更多與上下文相關的行為,例如自動完成建議、內聯方法參考、參數檢查等等。

Method autocompletion

Method reference

Argument checking

TypeScript 入門

如果您是 TypeScript 的新手並想了解更多資訊,這個來自微軟的入門影片提供了對該語言創建原因、工作原理、如何使用以及未來發展方向的良好概述。

官方 TypeScript 網站上還有一個手冊和一個遊樂場

由於 TypeScript 是 JavaScript 的超集合,因此您現有的 JavaScript 程式碼已經是有效的 TypeScript。這意味著您可以逐步將現有的 JavaScript 專案轉換為 TypeScript,並根據需要添加新的語言功能。

感謝

如果沒有 Electron 的開源維護人員社群的協助,這個專案將不可能實現。感謝 Samuel AttardFelix RiesebergBirunthan MohanathasMilan BurdaBrendan Forster 以及其他許多人,感謝他們提供的錯誤修正、文件改進和技術指導。

支援

如果您在使用 Electron 新的 TypeScript 定義檔時遇到任何問題,請在 electron-typescript-definitions 儲存庫中提出問題。

祝您 TypeScript 編碼愉快!

Electron Userland

·3 分鐘閱讀

我們已在 Electron 網站上新增了一個新的使用者領域區塊,以協助使用者發現構成我們蓬勃發展的開源生態系統的人員、套件和應用程式。


github-contributors

使用者領域的起源

使用者領域是軟體社群中的人們聚集在一起分享工具和想法的地方。該術語起源於 Unix 社群,它指的是在核心之外執行的任何程式,但今天它意味著更多。當當今 JavaScript 社群中的人們提到使用者領域時,他們通常指的是 npm 套件註冊表。這是大多數實驗和創新發生的地方,而 Node 和 JavaScript 語言(如 Unix 核心)則保留了一組相對較小且穩定的核心功能。

Node 和 Electron

與 Node 一樣,Electron 也有一組小的核心 API。這些 API 提供了開發多平台桌面應用程式所需的基本功能。這種設計理念使 Electron 保持靈活的工具,而不會過度規範其使用方式。

使用者領域是「核心」的對應物,它使使用者能夠創建和共享擴展 Electron 功能的工具。

收集資料

為了更好地了解我們生態系統的趨勢,我們分析了來自 15,000 個公開 GitHub 儲存庫的元數據,這些儲存庫依賴於 electronelectron-prebuilt

我們使用 GitHub APIlibraries.io API 和 npm 註冊表來收集有關相依性、開發相依性、被相依者、套件作者、儲存庫貢獻者、下載次數、分支次數、星標次數等資訊。

然後,我們使用這些資料生成以下報告

篩選結果

應用程式相依性星標應用程式 這樣的報告,其中列出套件、應用程式和儲存庫,都有一個文字輸入框,可用於篩選結果。

當您在此輸入框中輸入時,該頁面的 URL 會動態更新。這讓您可以複製代表特定使用者領域資料片段的 URL,然後與其他人分享。

babel

敬請期待

第一組報告僅僅是個開始。我們將繼續收集有關社群如何建構 Electron 的資料,並將在網站上新增新的報告。

用於收集和顯示這些資料的所有工具都是開源的

如果您對於如何改進這些報告有任何想法,請在網站儲存庫或上述任何儲存庫中提出 issue 來告訴我們。

感謝 Electron 社群的各位,讓使用者領域有了今天的發展!

協助工具

·2 分鐘閱讀

建立無障礙應用程式非常重要,我們很高興為 DevtronSpectron 引入新功能,讓開發人員有機會讓他們的應用程式對所有人更好。


Electron 應用程式的無障礙問題與網站的相似,因為它們最終都是 HTML。然而,使用 Electron 應用程式時,您無法使用線上資源進行無障礙審核,因為您的應用程式沒有 URL 可供審核工具指向。

這些新功能將這些審核工具帶到您的 Electron 應用程式中。您可以選擇使用 Spectron 將審核添加到您的測試中,或使用 Devtron 在 DevTools 中使用它們。請繼續閱讀工具的摘要,或查看我們的無障礙文件以獲取更多資訊。

Spectron

在測試框架 Spectron 中,您現在可以審核應用程式中的每個視窗和 <webview> 標籤。例如:

app.client.auditAccessibility().then(function (audit) {
if (audit.failed) {
console.error(audit.message);
}
});

您可以在 Spectron 的文件中閱讀有關此功能的更多資訊。

Devtron

在 Devtron 中,有一個新的無障礙標籤,可讓您審核應用程式中的頁面、排序和篩選結果。

devtron screenshot

這兩個工具都使用 Google 為 Chrome 建立的 Accessibility Developer Tools 程式庫。您可以在該儲存庫的 Wiki 中了解有關此程式庫使用的無障礙審核規則的更多資訊。

如果您知道其他適用於 Electron 的優秀無障礙工具,請使用 pull request 將它們新增到無障礙文件中。

Electron 上的 Mac App Store 和 Windows 自動更新程式

·2 分鐘閱讀

最近,Electron 新增了兩個令人興奮的功能:一個與 Mac App Store 相容的版本和一個內建的 Windows 自動更新程式。


Mac App Store 支援

v0.34.0 開始,每個 Electron 版本都包含一個與 Mac App Store 相容的版本。以前,基於 Electron 構建的應用程式不符合 Apple 對於 Mac App Store 的要求。這些要求大多與使用私有 API 有關。為了以符合要求的格式對 Electron 進行沙盒化,需要移除兩個模組:

  • crash-reporter
  • auto-updater

此外,在檢測 DNS 變更、影片擷取和無障礙功能方面,某些行為也發生了變化。您可以在文件中閱讀有關變更的更多資訊,以及將應用程式提交到 Mac App Store。這些發行版本可以在Electron 發行頁面上找到,並以 mas- 作為前綴。

相關 Pull Requests:electron/electron#3108electron/electron#2920

Windows 自動更新程式

在 Electron v0.34.1 中,auto-updater 模組得到了改進,以便與 Squirrel.Windows 搭配使用。這表示 Electron 提供了一種簡單的方法,讓您可以在 OS X 和 Windows 上自動更新您的應用程式。您可以在文件中閱讀更多關於在 Windows 上設定應用程式以進行自動更新的資訊。

相關 Pull Request:electron/electron#1984