electron打包可選擇安裝位置,可自動更新

Electron打包調參軟件(windows版)

----------------------------------可選安裝位置,可自動更新,手動更新npm

一:引包:electron,electron-builder,electron-updater**

npm i electron --save-dev
npm i electron-builder --save-dev
npm i electron-updater --save
注:每一個包都要放在相應的位置;

Package.json配置:json

1.字段:」build」

參數: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
    }
};

2.字段:」script」

參數:app

{
    "dist": "electron-builder"
}

3.字段:」version」

參數:electron

1.0.0   //保存版本信息,經過該字段完成更新功能(必須字段)

二:打包:npm run dist

圖片描述

等待打包,打包完成以後生成的文件會放在output字段設置的位置;
圖片描述ide

這是打包完成後生成的文件,其中latest.yml是electron-builder自動生成的版本管理文件, 該文件保存有版本信息;
圖片描述
箭頭指向的文件爲可安裝軟件,即打包後的目標文件;ui

版本文件:url

圖片描述

能夠看到,如今打包的版本爲2.0.0,想要改變版本只要更改package.json的version字段,從新打包便可;spa

點擊該文件可進行安裝:
圖片描述3d

三:更新

確認已經安裝了electron-updater

1.須要在electron主進程中引入electron-updater;

const autoUpdater = require("electron-updater").autoUpdater; //引入 autoUpdater

2.如下代碼須要在完成建立BrowserWindow後執行;

autoUpdater.setFeedURL('http://localhost:8899/'); //設置檢測更新地址(參數爲 軟件所在位置)

3.autoUpdater.checkForUpdates() //檢測是否有新版本,若是有新版本則自動下載;

4.autoUpdater.on('update-downloaded', function () { //下載完成後執行 quitAndInstall

autoUpdater.quitAndInstall();  //關閉軟件並安裝新版本

});

圖片描述

5.安裝程序後,每次打開都會執行上述代碼,每次都會檢測是否有新版本;

6.最後一步,打包一個新版本的軟件,把exe文件和latest.yml一塊兒放在autoUpdater.setFeedURL()設置的路徑下;

打開軟件後檢測到有新版本時就會自動下載安裝:

圖片描述

以上爲軟件自動更新,若要軟件手動更新還須要electron主進程和渲染進程之間的通信,經過用戶操做觸發更新檢測,下載更新事件;

如下是autoUpdater手動更新時可能用到的方法和事件;

事件列表

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 事件觸發後被調用。
相關文章
相關標籤/搜索