今天呢,给大家带来一篇干货满满的electron-vue自动升级的教程,话不多说,开始我的表演!


配置文件 "package.json"

"build" : {"publish": [{"provider": "generic","url": "http://127.0.0.1:3000/newfile/"}],
},
"devDependencies": {"electron": "^2.0.4","electron-updater": "3.0.0","electron-builder": "^20.19.2"
}

build字段详细配置

安装依赖

需要注意的是electron-vue中目前是使用electron 2.0.4的,所以最新版的electron-updater是不支持的,若手动升级electron版本的话,如果你使用了node-ffi等的话,是无法运行的,但是如果你只是使用node-ffi的话可以切换成node-ffi-napi然后对electron进行升级
yarn add electron-updater@3.0.0 --dev(推荐)
npm i electron-updater@3.0.0 -D
cnpm i electron-updater@3.0.0 -D

自动更新 "update.js"

import { autoUpdater } from 'electron-updater'
import { ipcMain } from 'electron'
/*** -1 检查更新失败 0 正在检查更新 1 检测到新版本,准备下载 2 未检测到新版本 3 下载中 4 下载暂停 5 下载暂停恢复 6 下载完成 7 下载失败 8 取消下载* */
class Update {mainWindowconstructor (mainWindow) {this.mainWindow = mainWindowautoUpdater.setFeedURL('http://127.0.0.1:3000/newfile') // 更新地址与package.json中的build.publish.url相对应/*** 根据自身需求选择下方方法*/this.error()this.start()this.allow()this.unallowed()this.listen()this.download()}Message (type, data) {this.mainWindow.webContents.send('message', type, data)}error () { // 当更新发生错误的时候触发。autoUpdater.on('error', (err) => {this.Message(-1, err)console.log(err)})}start () { // 当开始检查更新的时候触发autoUpdater.on('checking-for-update', (event, arg) => {this.Message(0)})}allow () { // 发现可更新数据时autoUpdater.on('update-available', (event, arg) => {this.Message(1)})}unallowed () { // 没有可更新数据时autoUpdater.on('update-not-available', (event, arg) => {this.Message(2)})}listen () { // 下载监听autoUpdater.on('download-progress', () => {this.Message('下载进行中')})}download () { // 下载完成autoUpdater.on('update-downloaded', () => {this.Message(6)setTimeout(m => {autoUpdater.quitAndInstall()}, 1000)})}load () { // 触发器autoUpdater.checkForUpdates()}
}
export default Update

update配置
若对class写法不是很熟悉的同学,可以参考阮一峰老师的es6课程class
在下载中的时候有一个问题就是下载非差异文件的时候不会触发下载监听,点击查看

主进程 "index.js"

import Update from './update'mainWindow = new BrowserWindow({height: 563,useContentSize: true,width: 1000
})
let update = new Update(mainWindow)

下面对比较常见的一些bug进行一下处理

At least electron-updater 4.0.0 is recommended by current electron-builder version. Please set electron-updater version to "^4.0.0"

electron-updater 安装在dependencies了,在package.json中将他移动到devDependencies

electron-vue使用electron-updater实现自动更新相关推荐

  1. Vue+Electron学习系列 (三) -- 自动更新

    Vue+Electron学习系列 ​​​​​​​1️⃣Vue+Electron学习系列 (一) -- 初识​​​​​​​ 2️⃣ Vue+Electron学习系列 (二) -- 打包发布 3️⃣ Vu ...

  2. electron 自动更新 热跟新

    electron 自动更新 热跟新 自动跟新之后不用重新安装 使用electron-upadta 自动跟新之后需要用户在重新安装一遍程序,用户体验不好,开发electron-hot-updata 插件 ...

  3. electron打包可选择安装位置,可自动更新

    Electron打包调参软件(windows版) ----------------------------------可选安装位置,可自动更新,手动更新 一:引包:electron,electron- ...

  4. electron 利用 electron-builder实现自动更新

    2019独角兽企业重金招聘Python工程师标准>>> 这篇文章是对应用文档的补充,这边刚开始用electron-forge 但没有相关的教程,放弃. 1.先学会用electron- ...

  5. Electron + Vue 实现输入法自动刷字数

    思路:循环使用 robotjs 库模拟键盘点击,从而实现输入法刷自动刷字数的功能. 安装依赖 npm i robotjs Vue 代码 在 Vue 中编写一个文本域用来聚焦输入法焦点. 思路:当我们按 ...

  6. electron自动更新版本electron-updater

    首先来看效果图: 打包electron生成新的exe安装包:npm run dist 使用simplehttpserver开启存放打包好的exe安装包与yml文件的本地服务(打包目录里有这两个文件) ...

  7. electron 应用程序updater实现热更新

    安装"electron-updater": "^5.2.1" 打开package.json文件在build对象下添加publish配置 "publis ...

  8. 【Electron】酷家乐客户端开发实践分享 — 软件自动更新

    作者:钟离,酷家乐PC客户端负责人 原文地址:webfe.kujiale.com/electron-au- 酷家乐客户端:下载地址 www.kujiale.com/activity/13- 文章背景: ...

  9. 一招解决BS转CS模式:浏览终端开发-Electron集成打包、本地配置文件及自动更新

    将普通的网页转换为桌面应用并兼容现在的H5,基本的思路都是打包封装谷歌公司的开源版Chromium 使其充当与本地应用通讯的媒介: 成本比较低的是electron  CefShap(C#)  至于bl ...

  10. Electron应用实现自动更新

    1.自行创建Electron项目 2.安装electron-builder 打包工具 yarn add electron-builder 或者 npm install electron-builder ...

最新文章

  1. 如何从0写一个服务网关?
  2. 对Excel表的查询、插入和更新操作
  3. ibm服务器虚拟化报价,IBM x86 服务器虚拟化服务.pdf
  4. 在ArcGIS中认识 Python工具箱
  5. Tomcat7基于Redis的Session共享实战二
  6. P3951,jzoj5473-小凯的疑惑【数论】(NOIP2017提高组)
  7. Python+django网页设计入门(9):自定义反爬虫功能
  8. string 都不能作用于switch_谁带孩子争论不休?家庭教育谁也不能缺席,每个人的作用都不同...
  9. 2020-08-03 手动编译Qt库(msvc2019版本)
  10. jitpack发布_JitPack –发布您的Android库
  11. 云服务器的规格配置该怎么选?
  12. Oracle用户及角色的权限管理[Oracle基础]
  13. 使用Excel办公,你必须学会的文件加密、单元格锁定、复制可见单元格
  14. 个人二维码实时收款源码 商业解决方案
  15. 【知识兔】Excel中的F1~F12快捷键,你还不会?强大到爆~
  16. 记Elsevier上Latex投稿
  17. log4j的使用和log4j过时问题的解决
  18. Hive之多维度聚合
  19. 计算机主板用料,揭开用料谜团 教你怎样看主板的质量
  20. 用连接linux mysql工具1045,Navicat远程连接linux下mysql服务器1045错误解决办法在这儿...

热门文章

  1. MySQL错误:The user specified as a definer (XXX@XXX) does not exist
  2. Can't save in background: fork: Cannot allocate memory
  3. BufferedReader类
  4. Java IO(input output)流二
  5. RHCE系列之备份工具----镜像备份Rsync
  6. 深入理解typedef
  7. AST语法结构树初学者完整教程
  8. Instance Object
  9. linux下的chromedriver驱动器配置实例(含代码)
  10. React Hooks 梳理