跳转到主内容

更容易地为开源应用程序提供自动更新

· 阅读时间:约 4 分钟

今天,我们发布了一个免费的、开源的托管更新 web服务 和配套的 npm 包,以便为开源 Electron 应用程序启用便捷的自动更新。 这使得应用程序开发人员能够花更少的时间考虑部署,而多去为用户提供高质量的体验。


The new updater module in action

让生活更轻松

Electron有一个autoUpdater API,让应用程序能够从远程终端获取元数据以检查更新,可以在后台下载并且自动安装。

启用这些更新对许多Electron应用开发者来说是部署过程中一个繁琐的步骤,因为它需要部署一个 web 服务器并且这只是为了提供应用版本历史元数据。

今天我们公布了一个新的应用自动更新的解决方案。 如果你的Electron应用在公开的GitHub仓库中,并且你正在使用GitHub Releases发布构建版本,你可以使用这项服务向你的用户提供持续的应用更新。

使用新模块

为了减少配置,我们创建了update-electron-app,一个npm模块,它与新的 update.electronjs.org web服务集成在一起。

安装模块

npm install update-electron-app

在您的应用程序的 main进程中的任何地方调用:

require('update-electron-app')();

搞定! 该模块将在应用启动时检查更新,然后每10分钟检查一次。 当它发现有更新时,它将在后台自动下载,并在更新就绪时显示对话框。

迁移现有应用

已经使用Electron的autoUpdater API的应用程序也可以使用这项服务。 为此,你可以定制update-electron-app模块,或者直接与update.electronjs.org集成

可替代方案

如果你使用electron-builder来打包你的应用,你可以使用它内置的更新程序。 有关详细信息,请参见electronic.build/auto-update

如果你的应用是私人的,你可能需要部署属于你自己的更新服务器。 有很多开源工具可以做到这一点,包括Zeit的Hazel和Atlassian的Nucleus。 有关更多信息,请参阅部署一个更新服务器教程。

谢谢!

感谢Julian Gruber帮助设计和构建这个简单且可扩展的web服务。 感谢Zeit的工作人员,他们提供了开源的Hazel服务,我们从中获得了设计灵感。 感谢Samuel Attard的代码评审。 感谢Electron社区帮助测试这项服务。

🌲 为 Electron 应用的美好未来干杯!