electron-vite electron-updater软件自动更新
Sonder
14小时前
1784字
4分钟
浏览 (14)
第一步
假设这是远程服务器目录列表。可以通过连接访问yml
。远程目录必须要提前有文件这些。
第二步
在electron-builder.json5
添加以下代码:
publish: [
{
provider: "generic",
url: "http://127.0.0.2"
}
],
第三步
在electron/main
添加自动打包的方法
// index.ts
import autoUpdater from "./autoUpdater";
app.whenReady().then(() => {
createWindow();
// 一次更新检车
autoUpdater();
});
- autoUpdater方法
// autoUpdater.js
import { dialog } from "electron";
import pkg from "electron-updater";
const { autoUpdater } = pkg;
//自动下载更新
autoUpdater.autoDownload = false;
//退出时自动安装更新
autoUpdater.autoInstallOnAppQuit = false;
export default () => {
// 设置更新源url
autoUpdater.setFeedURL("http://127.0.0.2:80");
//检查是否有更新
autoUpdater.checkForUpdates();
//有新版本时
autoUpdater.on("update-available", _info => {
console.log("有新版本");
dialog
.showMessageBox({
type: "warning",
title: "更新提示",
message: "有新版本发布了",
buttons: ["更新", "取消"],
cancelId: 1
})
.then(res => {
if (res.response == 0) {
//开始下载更新
autoUpdater.downloadUpdate();
}
});
});
//没有新版本时
autoUpdater.on("update-not-available", _info => {
console.log("没有更新");
});
//更新下载完毕
autoUpdater.on("update-downloaded", _info => {
//退出并安装更新
autoUpdater.quitAndInstall();
});
//更新发生错误
autoUpdater.on("error", _info => {
console.log("更新时发生错误");
});
// 监听下载进度
autoUpdater.on("download-progress", progress => {
console.log(`更新进度,${JSON.stringify(progress)}`);
});
};
第四步,注意项
第1. 打包之前的时候要修改package.json
里面的版本号
"version": "0.0.4",
第2. 每次打包好的文件要上传到远程目录
第3. 重启软件的时候就会出现更新提示
第4. 必须保证远程exe文件可以下载
http://127.0.0.2/electron-pure-admin_0.0.4.exe