跳到主要内容

更轻松地为开源应用实现自动更新

·阅读时长 3 分钟

今天,我们发布了一个免费、开源、托管的更新网络服务和配套的npm 包,以便更轻松地为开源 Electron 应用实现自动更新。这是朝着帮助应用开发者减少对部署的关注,更多地专注于为其用户开发高质量体验迈出的一步。


The new updater module in action

让生活更轻松

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

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

今天,我们宣布了一个新的即插即用解决方案,用于实现自动应用更新。如果你的 Electron 应用位于公共 GitHub 仓库中,并且你正在使用 GitHub Releases 发布构建版本,那么你可以使用此服务持续向你的用户提供应用更新。

使用新模块

为了尽量减少你的配置工作,我们创建了 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 应用拥有一个常青的未来!