跳到主要內容

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 的生態系統工作小組決定將所有套件升級到最早的 Node 版本,其中將支援同步 ESM 圖形的 require()(請參閱 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-compileelectron-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 進入點支援。)
  • Maker 現在並行執行在 Electron Forge 6 中,Maker 因 ✨ 舊版 ✨ 原因而依序執行。從那時起,我們測試了 Make 步驟的並行化,沒有任何不良副作用,因此當為同一平台建置多個目標時,您應該會看到速度提升!
謝謝!

🙇 非常感謝 mahnunchik 為 Forge 組態中的 GCS 發布者和 ESM 支援做出的貢獻!

更好的靜態儲存自動更新

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

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

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

另一方面,靜態儲存方法始終是可行的,但在 Electron 內未記錄,並且在 Electron 工具套件中支援不佳。

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

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

一旦您的 Maker 和發布者設定為將更新資訊清單上傳到雲端檔案儲存空間,您只需幾行組態即可啟用自動更新

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。這些變更有助於清楚地劃分第一方專案和 userland 專案。這包括許多常用的套件,例如

  • @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 將繼續在其所有 monorepo 套件下發布 @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 使用。

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

下一步?

我們將在下個月進入我們的年度十二月靜默期。在我們這樣做的同時,我們將思考如何在 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 的結構變為 monorepo 專案,其中包含許多較小的專案。

官方支援

從歷史上看,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 捆綁過程中新增對原生 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. Forge 會在 Electron 中支援應用程式建置的新功能後立即收到這些功能。在這種情況下,您無需自行連接新的工具支援,也無需等待其他套件最終實作該支援才能升級。如需最近的範例,請參閱 macOS 通用二進位檔ASAR 完整性檢查

  2. Forge 的多套件架構使其易於理解和擴展。由於 Forge 由許多具有明確職責的較小套件組成,因此更容易遵循程式碼流程。此外,Forge 的可擴展 API 設計意味著您可以編寫自己的額外建置邏輯,與為進階用例提供的組態選項分開。如需有關編寫自訂 Forge 外掛程式、maker 和發布者的更多詳細資訊,請參閱文件中的 擴展 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 文件提供任何意見回饋,我們有一個 GitBook 執行個體與 electron-forge/electron-forge-docs 儲存庫同步。

Spectron 棄用通知

·2 分鐘閱讀

Spectron 將於 2022 年 2 月 1 日棄用。


從 2022 年 2 月開始,Spectron 將 被 Electron 團隊正式棄用

為何棄用 Spectron?

雖然 Spectron 一直為每個新版本的 Electron 發布新版本,但該專案在一年多的時間裡幾乎沒有維護和改進,並且目前沒有全職維護人員。隨著 remote 模組移出 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 分鐘閱讀

今天,我們發布了一個免費、開放原始碼、託管的 更新網頁服務 和配套的 npm 套件,以便為開放原始碼 Electron 應用程式啟用輕鬆的自動更新。這是朝著授權應用程式開發者減少對部署的思考,而更多地思考為其使用者開發高品質體驗邁出的一步。


The new updater module in action

讓生活更輕鬆

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

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

今天,我們宣布了一個用於自動應用程式更新的全新嵌入式解決方案。如果您的 Electron 應用程式位於公共 GitHub 儲存庫中,並且您正在使用 GitHub 版本發布組建,則可以使用此服務向您的使用者提供持續的應用程式更新。

使用新模組

為了最大程度地減少您的組態,我們建立了 update-electron-app,這是一個與新的 update.electronjs.org 網頁服務整合的 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 是 Microsoft 建立的開源程式語言。它是 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 新手並且想了解更多資訊,這個來自 Microsoft 的 入門影片 提供了關於該語言創建的原因、它的運作方式、如何使用它以及它的發展方向的良好概述。

官方 TypeScript 網站上還有一個手冊和一個playground

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

感謝

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

支援

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

TypeScript 快樂!

Electron Userland

·3 分鐘閱讀

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


github-contributors

Userland 的起源

Userland 是軟體社群中的人們聚集在一起分享工具和想法的地方。這個詞起源於 Unix 社群,在 Unix 社群中,它指的是在核心之外運行的任何程式,但今天它的意義更廣泛。當今日 JavaScript 社群中的人們提到 userland 時,他們通常談論的是 npm 套件註冊表。這是大多數實驗和創新發生的場所,而 Node 和 JavaScript 語言(就像 Unix 核心一樣)保留了相對較小且穩定的核心功能集。

Node 和 Electron

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

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

收集資料

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

我們使用了 GitHub APIlibraries.io API 和 npm 註冊表來收集有關依賴項、開發依賴項、依賴者、套件作者、儲存庫貢獻者、下載計數、fork 計數、stargazer 計數等資訊。

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

篩選結果

諸如應用程式依賴項星標應用程式之類的報告,其中列出了套件、應用程式和儲存庫,具有可用於篩選結果的文字輸入框。

當您在此輸入框中輸入時,頁面的 URL 會動態更新。這允許您複製代表 userland 資料特定切片的 URL,然後與他人分享。

babel

更多內容即將推出

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

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

如果您對如何改進這些報告有任何想法,請在網站儲存庫上開啟 issue 或任何上述提及的儲存庫,讓我們知道。

感謝您,Electron 社群,讓 userland 成為今天的樣子!

協助工具

·2 分鐘閱讀

製作可訪問的應用程式非常重要,我們很高興為 DevtronSpectron 引入新功能,讓開發人員有機會讓他們的應用程式對每個人都更好。


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

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

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 Request:electron/electron#3108electron/electron#2920

Windows 自動更新程式

在 Electron v0.34.1 中,auto-updater 模組得到了改進,以便與 Squirrel.Windows 協同工作。這表示 Electron 附帶了在 OS X 和 Windows 上輕鬆自動更新應用程式的方法。您可以在文件中閱讀更多關於在 Windows 上設定應用程式以進行自動更新的資訊。

相關 Pull Request:electron/electron#1984