1.package.json配置

owner 仓库所有者
repo 仓库名称
private //若是私有仓库,则将私有设置为true,同时添加token,反之不需要设置
token github的私有token
releaseType 上传到github的版本类型(draft:草稿,prerelease:提前发行版,release 发行版)

 "publish": [
        {
          "provider": "github",
          "owner": "test",
          "repo": "electronfile",
          "token": "ghp_******************SDJIWDL23C@23",
          "releaseType": "release",
          "channel": "latest"
        }
      ],

2.electron-updater 获取github文件实现自动更新

2.1、electron/index.ts 新增配置

npm install electron-updater

const { autoUpdater } = require('electron-updater')
const checkUpdate = () => {
    console.log("checkUpdate")
    //检测更新
    autoUpdater.checkForUpdates()
    console.log("checkForUpdates")
    //正在检查更新。
    autoUpdater.on('checking-for-update', () => {
        console.log('Checking for update...')
    })
    //有可用的更新。
    autoUpdater.on('update-available', () => {
        console.log('found new version')
    })
    //没有可用的更新。
    autoUpdater.on('update-not-available', () => {
        console.log('Update not available')
    })
    //监听'error'事件
    autoUpdater.on('error', (err) => {
        console.log(err)

    })
    //更新包下载进度。
    autoUpdater.on('download-progress', (progressObj) => {
        console.log(`Downloaded ${progressObj.percent}%`)
    })


    //默认会自动下载新版本,如果不想自动下载,设置autoUpdater.autoDownload = false
    //监听'update-downloaded'事件,新版本下载完成时触发
    autoUpdater.on('update-downloaded', () => {
        console.log('update-downloaded')

        dialog.showMessageBox({
            type: 'info',
            title: '应用更新',
            message: '发现新版本,是否更新?',
            buttons: ['是', '否']
        }).then((buttonIndex) => {
            if(buttonIndex.response == 0) {  //选择是,则退出程序,安装新版本
                autoUpdater.quitAndInstall()
                app.quit()
            }
        })
    })

}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐