----------------------------------可选安装位置,可自动更新,手动更新npm
npm i electron --save-dev npm i electron-builder --save-dev npm i electron-updater --save 注:每一个包都要放在相应的位置;
Package.json配置:json
参数:windows
{ "publish": [ { "provider": "generic", "url": "http://localhost:8899/" //存放软件版本的地址 } ], "directories": { "output": "release", //打包后文件所在位置 "app": "./" //开始位置 }, "win": { //windows下安装软件配置参数 "target": [ "nsis", //打包为nsis安装文件 "zip" //打包为安装文件zip ] }, "nsis": { //nsis配置参数 "oneClick": false, //可单击打开 "allowToChangeInstallationDirectory": true, //容许用户选择安装位置 "perMachine": true } };
参数:app
{ "dist": "electron-builder" }
参数:electron
1.0.0 //保存版本信息,经过该字段完成更新功能(必须字段)
等待打包,打包完成以后生成的文件会放在output字段设置的位置;ide
这是打包完成后生成的文件,其中latest.yml是electron-builder自动生成的版本管理文件, 该文件保存有版本信息;
箭头指向的文件为可安装软件,即打包后的目标文件;ui
版本文件:url
能够看到,如今打包的版本为2.0.0,想要改变版本只要更改package.json的version字段,从新打包便可;spa
点击该文件可进行安装:3d
const autoUpdater = require("electron-updater").autoUpdater; //引入 autoUpdater
autoUpdater.setFeedURL('http://localhost:8899/'); //设置检测更新地址(参数为 软件所在位置)
autoUpdater.quitAndInstall(); //关闭软件并安装新版本
});
打开软件后检测到有新版本时就会自动下载安装:
以上为软件自动更新,若要软件手动更新还须要electron主进程和渲染进程之间的通信,经过用户操做触发更新检测,下载更新事件;
autoUpdater 对象会触发如下的事件: 事件:'error' 返回: error Error 当更新发生错误的时候触发。 事件:'checking-for-update' 当开始检查更新的时候触发。 事件:'update-available' 当发现一个可用更新的时候触发,更新包下载会自动开始。 事件:'update-not-available' 当没有可用更新的时候触发。 事件:'update-downloaded' 返回: event Event releaseNotes String - 新版本更新公告 releaseName String - 新的版本号 releaseDate Date - 新版本发布的日期 updateURL String - 更新地址 在更新下载完成的时候触发。 在 Windows 上只有 releaseName 是有效的。
autoUpdater 对象有如下的方法: autoUpdater.setFeedURL(url) url String 设置检查更新的 url,而且初始化自动更新。这个 url 一旦设置就没法更改。 autoUpdater.checkForUpdates() 向服务端查询如今是否有可用的更新。在调用这个方法以前,必需要先调用 setFeedURL。 autoUpdater.quitAndInstall() 在下载完成后,重启当前的应用而且安装更新。这个方法应该仅在 update-downloaded 事件触发后被调用。