Electron 自动更新(简单完整版)

一.、下载更新插件   electron-updater

yarn add electron-updater --save
 publish: [
          {
            provider: "generic",
            url: "http://127.0.0.1",
          },
        ],

二、创建 autoUpdate.js 文件

// autoUpdater.js
const path = require("path");
const { autoUpdater } = require("electron-updater");
//自动下载更新
// autoUpdater.autoDownload = false;

//退出时自动安装更新
// autoUpdater.autoInstallOnAppQuit = false;

module.exports = (url, win) => {
  // console.log("url ==:", url);
  // console.log("win ==:", win);
  // console.log("NODE_ENV ==:", NODE_ENV);
  // console.log("NODE_ENV ==:", process.env.NODE_ENV);
  // console.log("__dirname ==:", __dirname);

  // latest.yml 线上
  autoUpdater.updateConfigPath = path.join(
    __dirname,
    process.env.NODE_ENV === "development" ? "latest.yml" : "../app-update.yml"
  );
  // console.log("updateConfigPath ==:", autoUpdater._appUpdateConfigPath);

  // 设置更新源url
  autoUpdater.setFeedURL(url);

  //检查是否有更新
  autoUpdater.checkForUpdates();

  // 更新异常
  autoUpdater.on("error", function (e, message) {
    win.send("error", message);
  });

  //有新版本时
  autoUpdater.on("update-available", function (e, message) {
    win.send("update-available", message);
  });

  // 更新下载进度事件
  autoUpdater.on("download-progress", function (e, progressObj) {
    win.send("download-progress", e.percent);
  });

  // 更新下载完成事件
  autoUpdater.on("update-downloaded", function (e, progressObj) {
    win.send("update-downloaded", progressObj);
    autoUpdater.quitAndInstall();
  });

  //没有新版本时
  autoUpdater.on("update-not-available", (_info) => {
    console.log("没有更新");
  });
};

三、主进程引入封装好的autoUpdate.js 文件

// ======================================================================
// 更新模块
// ======================================================================
// 主进程监听渲染进程传来的信息
const Updater = require("./autoUpdate");
Object.defineProperty(app, "isPackaged", {
  get() {
    return true;
  },
});
ipcMain.on("update", (event, Url) => {
  Updater(Url, win.webContents);
});

四、需要更新的时候触发即可

 ipcRenderer.send("update", Url);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值