前言:

在应用electron的自动更新的时候,有时候呈现BUG时想回退版本时却只能向上降级,非常之无奈。
因为看官网文档和百度搜寻(我的搜寻技巧比拟水)都是在教人如何更新降级,却没有人讲降级,所以由我率领各位理解下如何回退版本! (如何在线更新请自行百度)

如何Downgrade

不废话先上后果

autoUpdater.allowDowngrade = true

嗯这样子就完结了
看源码的过程中我发现对于检测更新的函数里有一个叫 allowDowngrade

aync isUpdateAvailable(){// ....  const isLatestVersionNewer = (0, _semver().gt)(latestVersion, currentVersion);  const isLatestVersionOlder = (0, _semver().lt)(latestVersion, currentVersion);  if (isLatestVersionNewer) {    return true;  }  return this.allowDowngrade && isLatestVersionOlder;}

虽说翻译过去意思曾经很明确,但眼见为实,而后找到这个属性的解释

嗯应该是我想要的后果了,但还是不确定能不能胜利
所以我设置了 autoUpdater的allowDowngrade位true 并且上测试服务器上搁置了一个 1.3.9
本地为1.3.10 胜利回退!
我的配置如下

// 在autoUpdater有一个属性是allowDowngrade是用来判断是否能够回退的属性autoUpdater.allowDowngrade = trueautoUpdater.setFeedURL(downloadUrl);autoUpdater.on('error', function (error) {    console.log('err', error);    sendUpdateMessage(message.error);});autoUpdater.on('checking-for-update', function (info) {    console.log('checking-for-update', JSON.stringify(info));    sendUpdateMessage(message.checking);});autoUpdater.on('update-available', function (info) {    console.log('update-available', JSON.stringify(info));    sendUpdateMessage(message.updateAva);});autoUpdater.on('update-not-available', function (info) {    console.log('update-not-available', JSON.stringify(info));    // sendUpdateMessage(message.updateNotAva);});// 更新下载进度事件autoUpdater.on('download-progress', function (progressObj) {    mainWindow.webContents.send('downloadProgress', progressObj);});autoUpdater.on('update-downloaded', function (event, releaseNotes, releaseName, releaseDate, updateUrl, quitAndUpdate) {    ipcMain.on('isUpdateNow', (e, arg) => {        // 退出并装置        autoUpdater.quitAndInstall();    });    mainWindow.webContents.send('isUpdateNow');});ipcMain.on('checkForUpdate', () => {    // 查看是否须要更新    autoUpdater.checkForUpdates();});

心愿能帮忙到大家!