热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

electronvue使用electronupdater实现自动更新

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

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

clipboard.png


配置文件 "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



推荐阅读
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 在使用 MUI 框架进行应用开发时,开发者常常会遇到 mui.init() 和 mui.plusReady() 这两个方法。本文将详细解释它们的区别及其在不同开发环境下的应用。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • TCP长连接设备管理平台:架构与功能概览
    本文介绍了基于TCP长连接的设备管理平台的设计理念、技术选型及主要功能模块。最初,项目旨在实现简单的协议测试,但随着需求扩展,逐步演变为一个完整的前后端分离系统。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 探讨如何优化 npm 构建过程,提升开发效率,减少构建时间,并介绍自动化部署的最佳实践。 ... [详细]
  • npm run dev后报错 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文详细介绍了如何在 Windows 环境下使用 node-gyp 工具进行 Node.js 本地扩展的编译和配置,涵盖从环境搭建到代码实现的全过程。 ... [详细]
author-avatar
你走之后你的美我如何收拾_686
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有