跳到主要内容

更轻松地自动更新开源应用

·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 应用拥有常青的未来!