跳到主要內容

更容易為開源應用程式自動更新

·3 分鐘閱讀

今天我們發布了一個免費、開源、託管的 更新網路服務 和配套的 npm 套件,以便為開源 Electron 應用程式啟用簡易的自動更新。這是朝著賦予應用程式開發人員更多能力,讓他們減少考慮部署,而將更多精力放在為使用者開發高品質體驗上邁出的一步。


The new updater module in action

讓生活更輕鬆

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

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

今天,我們宣布推出一個新的隨插即用解決方案,用於自動應用程式更新。如果您的 Electron 應用程式位於公共 GitHub 儲存庫中,並且您使用 GitHub Releases 發布建置版本,則可以使用此服務向您的使用者交付持續的應用程式更新。

使用新模組

為了盡可能減少您的配置,我們建立了一個 update-electron-app npm 模組,該模組與新的 update.electronjs.org 網路服務整合。

安裝模組

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 應用程式的常青未來乾杯!