利用electron-builder打包生成的免安装文件,使electron应用自动更新
时间: 2023-12-14 14:05:53 浏览: 202
要使 Electron 应用自动更新,可以使用 electron-updater 模块。这个模块是 Electron 提供的一个官方模块,可以用来实现自动更新功能。
以下是实现自动更新的步骤:
1. 在你的应用程序中添加 electron-updater 模块。
```javascript
npm install --save electron-updater
```
2. 在主进程中设置自动更新的配置。
```javascript
const { app, autoUpdater } = require('electron');
const server = 'https://your-deployment-url.com'; // 更新服务器地址
const feed = `${server}/update/${process.platform}/${app.getVersion()}`;
autoUpdater.setFeedURL(feed);
autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName) => {
// 收到更新下载完成的事件,需要用户确认安装
const dialogOpts = {
type: 'info',
buttons: ['安装', '稍后'],
title: '应用有新的更新',
message: process.platform === 'win32' ? releaseNotes : releaseName,
detail: '安装后将重启应用程序'
};
dialog.showMessageBox(dialogOpts).then((returnValue) => {
if (returnValue.response === 0) {
// 确认安装
setImmediate(() => autoUpdater.quitAndInstall());
}
});
});
// 检查更新
app.on('ready', () => {
autoUpdater.checkForUpdates();
});
```
3. 在打包应用时添加自动更新的配置。
在 package.json 文件中添加以下内容:
```json
"build": {
"publish": [
{
"provider": "generic",
"url": "https://your-deployment-url.com/update/"
}
]
}
```
这里的 `url` 指向包含更新文件的服务器地址,`provider` 的值可以是 `generic`,也可以是其他选项(如 `github`、`s3` 等)。
4. 生成更新文件并上传到服务器。
最后,你需要在你的服务器上生成更新文件,并将其上传到指定的地址。更新文件可以是 `.dmg`、`.exe` 等格式的安装文件,也可以是 `.zip`、`.tar.gz` 等格式的压缩包。
上传更新文件时需要按照以下格式命名:
- `appName-版本号-darwin-x64.dmg`(Mac OS X 版本)
- `appName-版本号-win32-ia32.exe`(Windows 32 位版本)
- `appName-版本号-win32-x64.exe`(Windows 64 位版本)
注意,这里的 `appName` 需要和你的应用程序名称一致,版本号需要和 `package.json` 文件中的版本号一致。
这样,当用户打开应用程序时,它将自动检查更新,并在更新可用时提示用户下载和安装更新。
阅读全文