通过electron-updater方案进行 全量 自升级方案图如下:
这里列出所使用的环境:
- NodeJS v14.16.1(x64)
- electron :13.6.9
- @vue/cli : 4.5.0
- vue-cli-plugin-electron-builder : 2.1.1
- electron-updater : 5.2.1
一、插件
1、electron-updater
npm install electron-updater --save
二、配置
1、配置vue.config.js
在vue.config.js文件中配置publish字段,用来生成latest.yml文件,该文件是用来判断版本升级的,在打包过程中生成。
一旦修改了latest.yml文件,则需要重新打包生成,否则更新失败。这里也可以不配置url字段,在main.js中手动配置,使用autoUpdater.setFeedURL方法配置即可。
pluginOptions: {
electronBuilder: {
builderOptions: {
"publish": [{
"provider": "generic",
"url": ''//例如http://192.168.3.233:8088,可不填
}],
},
}
},
2、配置软件更新服务地址
这边借用phpstudy应用软件来做服务配置,配置如下:
server {
listen 8088;
server_name localhost;
root "E:/vue-electron-demo-up";
location / {
try_files $uri $uri/ /index.html;
error_page 400 /error/400.html;
error_page 403 /error/403.html;
error_page 404 /error/404.html;
error_page 500 /error/500.html;
error_page 501 /error/501.html;
error_page 502 /error/502.html;
error_page 503 /error/503.html;
error_page 504 /error/504.html;
error_page 505 /error/505.html;
error_page 506 /error/506.html;
error_page 507 /error/507.html;
error_page 509 /error/509.html;
error_page 510 /error/510.html;
include E:/vue-electron-demo-up/nginx.htaccess;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
重启nginx服务后,在浏览器打开验证,如下所示:
三、关键代码
1、前端Update.vue组件
<template>
<div class="m-update-soft">
<el-button class="m-button