electron-vue搭建(二)打包发布至github自动更新

使用electron-builder打包到github发行版,使用electron-updater autoUpdater检测是否自动更新。
1、安装 electron-updater electron-log

npm install electron-updater
npm install electron-log

2、vue.config.js 配置

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  configureWebpack: {
    resolve: {
      fallback: { path: false },
    },
  },
  transpileDependencies: true,

  pluginOptions: {
    electronBuilder: {
      nodeIntegration:true,
      builderOptions: {

        appId: "com.electron.electronui",
        productName: "electronui",
        copyright: "2023",
        directories: {
          output: "dist_electron",
          buildResources: "build",
          app: "dist_electron/bundled"
        },
		//关于"nsis"的一些配置
        nsis: {
          oneClick: false, //是否一键安装,默认为true
          perMachine: true, //为当前系统的所有用户安装该应用程序
          allowToChangeInstallationDirectory: true, //允许用户选择安装目录
          warningsAsErrors: false,
          allowElevation: false,
          createDesktopShortcut: true,
          createStartMenuShortcut: true,
          // include: "installer.nsh"
        },
		"files": [
		"package.json",
		"index.js",
		"src/**/*"
		],
        win: {
          "target": ["msi","nsis"],
          "icon": "public/icons/icon.ico" //安装包的图标
        },


        publish: [
          {
            provider: "github", //打包上传到github
            owner: "test", //仓库所有者
            repo: "electronui", //仓库名称
            // private: true, //若是私有仓库,则将私有设置为true,同时添加token,反之不需要设置
            token: "ghp_h**************************CWSDW", //github的私有token
            releaseType: "release", //上传到github的版本类型(draft:草稿,prerelease:提前发行版,release:发行版)
            channel: "latest"
          }
        ],
      }
    }
  }
})

3、package.json配置 打包至github

"release:build": "vue-cli-service electron:build --win --x64 -p always"

4、background.js

const { autoUpdater } = require('electron-updater')

import log from 'electron-log';

app.on('ready', async () => {
  createWindow()
  //每次启动程序,就检查更新
  checkUpdate()
})



function checkUpdate(){
  //检测更新
  autoUpdater.checkForUpdates()

  //监听'error'事件
  autoUpdater.on('error', (err) => {
    log.info(err)

  })

  //监听'update-available'事件,发现有新版本时触发
  autoUpdater.on('update-available', () => {
    log.info('found new version')
  })

  //默认会自动下载新版本,如果不想自动下载,设置autoUpdater.autoDownload = false

  //监听'update-downloaded'事件,新版本下载完成时触发
  autoUpdater.on('update-downloaded', () => {
    dialog.showMessageBox({
      type: 'info',
      title: '应用更新',
      message: '发现新版本,是否更新?',
      buttons: ['是', '否']
    }).then((buttonIndex) => {
      if(buttonIndex.response == 0) {  //选择是,则退出程序,安装新版本
        autoUpdater.quitAndInstall()
        app.quit()
      }
    })
  })
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当需要更新 Vue-Electron 中的 Electron 版本时,我们需要按照以下步骤进行操作。 首先,我们需要确定 Electron 的新版本。我们可以通过查看 Electron 的官方网站(https://www.electronjs.org/)或 GitHub 仓库来获取最新的版本号。 一旦确定了新版本号,我们需要在项目的 package.json 文件中更新 `electron` 的依赖项。找到 `dependencies` 或者 `devDependencies` 部分,并将其对应的依赖项从旧版本更新到新版本。例如,将 `"electron": "^7.0.0"` 更新为 `"electron": "^8.0.0"`。 接下来,运行 `npm install` 命令来安装最新版本的 Electron。这将会自动下载并安装新版本的 Electron。 完成安装后,我们需要确保 Vue-Electron 的一些关键配置也进行了更新。如果在项目中使用了 Vue 的 webpack 模板生成的默认配置,我们需要修改 `build/webpack.base.conf.js` 文件。找到 `externals` 部分,并将 `'electron'` 的值更新为新版本号。例如:`'electron': '@latest'`。 如果项目中使用了 VueCLI 3.x,我们需要在 vue.config.js 文件中进行类似的操作。找到 `configureWebpack` 选项,并将 `externals` 部分的依赖项更新为新版本。 在确保所有必要的更新已经完成后,我们可以重新构建和运行项目,以确保新版本的 Electron 正常工作。可以使用命令 `npm run build` 重新构建项目,并使用 `npm run electron` 或相应的启动命令来启动 Electron。 通过以上步骤,我们可以成功更新 Vue-Electron 中的 Electron 版本,确保项目正常运行并享受最新的 Electron 特性和改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值