返回

跟着这篇攻略,手撸 Electron 自动更新,从此无忧!

前端

Electron 自动更新:手撸一个,自动无忧!

Electron 应用更新的烦恼

作为一名 Electron 应用开发者,更新应用的烦恼是绕不过去的坎。手动更新耗时费力,用户体验极差;借助第三方工具又存在安全和稳定性隐患。难道就没有两全其美的解决方案吗?

自己动手,撸一个自动更新服务!

答案就是:自己撸一个!别担心,这不是一项不可能完成的任务。今天,我们就来一步一步详解如何基于 electron-updater 手撸一个自动更新的服务。

第一步:搭建更新服务器

首先,我们需要一个服务器来存储更新文件。可以选择 GitHub、GitLab 或 Netlify 等平台。在这里,我们以 GitHub 为例。在 GitHub 上创建一个新仓库,并上传你的更新文件。

第二步:配置 Electron 应用

在 Electron 应用中,我们需要配置 electron-updater。在 package.json 文件中添加 electron-updater:

{
  "dependencies": {
    "electron-updater": "^4.0.0"
  }
}

在 main.js 文件中,添加以下代码:

const { autoUpdater } = require('electron-updater')

autoUpdater.checkForUpdatesAndNotify()

这段代码将在应用启动时自动检查更新。

第三步:打包应用

接下来,打包应用。使用 Electron 的官方打包工具 electron-packager:

npm install -g electron-packager
electron-packager . my-app --platform=darwin,win32,linux

第四步:发布应用

打包后,发布应用到你的网站、GitHub 仓库或其他平台。

第五步:更新应用

有新更新时,只需更新更新服务器上的更新文件。用户下次启动应用时,会自动收到更新通知。点击“更新”按钮即可安装更新。

第六步:处理更新错误

偶尔会遇到更新失败的情况。可以在 main.js 文件中添加以下代码处理更新错误:

autoUpdater.on('error', (error) => {
  // 处理错误
})

第七步:测试自动更新功能

上传一个新的更新文件,启动应用,应该会看到更新通知。点击“更新”按钮安装更新。

第八步:恭喜你!

恭喜你,已经成功手撸了一个 Electron 自动更新服务!尽情享受自动更新的便利吧。

常见问题解答

1. 更新服务器可以用什么平台?

GitHub、GitLab 或 Netlify 等平台都可以。

2. 如何设置更新间隔?

在 main.js 文件中添加以下代码:

autoUpdater.setFeedURL({ url: 'http://example.com/updates' })
autoUpdater.setCheckForUpdatesInterval(1000 * 60 * 60 * 24) // 每天检查一次更新

3. 如何在更新前提示用户?

在 main.js 文件中添加以下代码:

autoUpdater.on('update-available', () => {
  if (confirm('有新版本可用,是否更新?')) {
    autoUpdater.downloadUpdate()
  }
})

4. 如何禁止自动更新?

在 main.js 文件中添加以下代码:

autoUpdater.autoDownload = false

5. 如何强制检查更新?

在 main.js 文件中添加以下代码:

autoUpdater.checkForUpdates()

结论

手撸一个 Electron 自动更新服务,不仅可以解决更新烦恼,还能保证安全和稳定性。通过这篇教程,你已经掌握了这项技能。