electron自动更新

工具

打包工具 electron-builder
自动更新工具 electron-updater

1 配置服务器地址

在package.json的build下配置

...
"build"{
  "publish": {
      "provider": "generic",
      "url": "https://www.domain.com/update"
    }
}
...

这个url目录下放的是打包后的exe文件 还有latest.yml文件
这个latest.yml文件是设置了 publish这个配置之后自动生成的文件

2 编写代码

在electron文件夹下,新增update.js文件

const { autoUpdater } = require('electron-updater');
var mainWindow = null;

const checkUpdate = (win,ipcMain) => {
  autoUpdater.autoDownload = true;
  autoUpdater.autoInstallOnAppQuit = true;
  mainWindow = win;

  autoUpdater.checkForUpdatesAndNotify().catch();

  ipcMain.handle('install',()=>autoUpdater.quitAndInstall());
}

module.exports = checkUpdate;

3 在main.js 中调用checkUpdate方法

const checkUpdate = require('./update')

const { app, BrowserWindow, ipcMain, Menu, shell } = require('electron')

  mainWindow = new BrowserWindow({
    width: 1200,
    height: 800,
    minWidth: 1200,
    minHeight: 800,
    backgroundColor: '#E0E4F8',
    webPreferences: webPreferencesConfig,
    icon: path.join(__dirname, 'assets/icon.png'),
    show: false,
    titleBarStyle: 'hidden',
    frame: false
  });


  checkUpdate(mainWindow,ipcMain);

4 更新包和latest.yml到服务器的对应路径中

publish中配置的路径

评论

发表回复