跳转到主要内容

让开源应用自动更新更简单

·3 分钟阅读

今天,我们发布了一个免费、开源、托管的更新网络服务和配套的npm 包,旨在为开源 Electron 应用提供便捷的自动更新功能。这是我们赋能应用开发者,让他们能够减少对部署的关注,更多地投入到为用户开发高质量体验的一步。


The new updater module in action

让生活更轻松

Electron 提供了一个 autoUpdater API,它允许应用程序从远程端点获取元数据以检查更新,在后台下载更新,并自动安装它们。

对许多 Electron 应用开发者来说,启用这些更新一直是部署过程中的一个繁琐步骤,因为这需要部署和维护一个仅用于提供应用版本历史元数据的 Web 服务器。

今天,我们宣布一项新的即插即用解决方案,用于自动应用更新。如果您的 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 应用拥有一个常青的未来!