----------------------------------可選安裝位置,可自動更新,手動更新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 事件觸發後被調用。