electron vue热更新,含源码

electron热更新

完成后的源码下载:

git clone https://gitee.com/lgpr/electron-vue-update.git

源码需要修改一些东西,如你的静态文件地址,本源码仅供参考。

一、项目生成
1.vue脚手架安装,主要是可以使用vue init命令
2.

git clone https://gitee.com/lgpr/ev.git

用我给的ev生成一个electron项目(基于electron_vue脚手架),可以避免一些简单问题影响心情,当然如果你自己已经build好了electron应用,先看文章最后关键点。

vue init ./ev electron_update 

npm i 这个不用说吧

npm i adm-zip
如果想换npm 源
npm config set registry http://r.cnpmjs.org
npm config set registry http://registry.npm.taobao.org/

npm run dev 可以看到
在这里插入图片描述

上面这一步算最简单,这步都做不到,下面就没得看了。

二、更新原理
1.npm run build 打包下我们可以在项目目录的build下看到安装包
2.安装后,进到这个执行程序的安装目录看到有个app文件夹
在这里插入图片描述
这个文件夹就是应用所有资源的包,这个包换了,更新就完成了

3.流程简述

  • 应用打开,渲染线程也就是app.vue,发送消息
  • 主线程也就是index.js,收到消息执行更新代码(检测版本,不一致,下载更新zip包)
  • 覆盖压缩重启 (更新完成)

三、具体代码
1.主线程 - main/index.js

import { app, BrowserWindow,ipcMain } from 'electron'
import {updateVersion} from '@/utils/updateApp'

// update监听
ipcMain.on('app-update', (event, ...args) => {
  updateVersion()
})

这个updateApp.js代码是

https://gitee.com/lgpr/electron-vue-update/blob/master/electron_update/src/util/updateApp.js

2.渲染线程(renderer/app.vue)

const { ipcRenderer,app } = require('electron');
 mounted(){
    // 更新版本
     ipcRenderer.send('app-update', "")
   },

3.把你的打包后的新package.json 和app打成app.zip包放在你的静态资源目录下。
package.json中的version携带了版本号信息,可以用于比对,更改他
在这里插入图片描述
app.zip就是你打的更新资源包
我这边代码地址是

const fileUrl = "http://www.tt.com/win32/";//这里需要修改为自己的资源外网

所以你应该能看到他,从浏览器
在这里插入图片描述
实现有个关键点package.json配置

"asar": false,

在这里插入图片描述

最后可以实现dialog更新提示,文件判断处理,提示更新信息,不知道这个教程有没有用。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值