国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Electron autoUpdater實現Windows安裝包自動更新的方法

2024-05-06 15:43:51
字體:
來源:轉載
供稿:網友

前言

Electron幫助我們突破瀏覽器的界限,通過Electron構建的桌面應用擁有各種瀏覽器應用夢寐以求的能力。

Electron提供的autoUpdater還可以幫助我們實現桌面應用的自動更新。

文件結構

首先,我們已經有了一個基于Electron做的應用,項目中有兩個package.json。這樣做的一個原因是將devDependencies和dependencies分開了,另外就是不需要在打包的時候再去指定哪些依賴不需要一起打到安裝包里面去了(通過ignore參數)。

目錄結構類似于這樣:

myapp  -node_modules  -package.json  -app    -js    -css    -index.html    -main.js    -package.json

外面的package.json內容類似于:

{ "name": "myapp", "main": "app/main.js", "scripts": {  "start": "electron ." }, "devDependencies": {  "electron-prebuilt": "^1.2.7" }}

里面的package.json的內容類似于:

{  "name": "myapp",  "version": "1.0",  "main": "main.js",  "description": "my app",  "scripts": {    "start": "electron ."  },  "dependencies": {}}

注意里面的package.json中的name,version,description是必填的,接下來打包會用到。

electron-squirrel-startup

為了使最后的安裝包能夠實現自動更新,我們需要對現有的應用做一些改動,使它可以處理一些啟動或者安裝時的事件。
我們可以在main.js里面加入一些處理的代碼或者方便起見,我們可以直接使用electron-squirrel-startup。

先安裝:

npm install electron-squirrel-startup --save

因為需要在main.js里面用到,我們需要將其安裝在app里面。

在main.js里面使用它,第一行加入如下代碼即可:

if (require('electron-squirrel-startup')) return;

有興趣的童鞋可以一起跟我去看看electron-squirrel-startup做了什么事情,急著打包的童鞋可以直接忽略這一段:

在myapp/app/node_modules/electron-squirrel-startup下面有一個index.js:

var path = require('path');var spawn = require('child_process').spawn;var debug = require('debug')('electron-squirrel-startup');var app = require('electron').app;  var run = function(args, done) { var updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe'); debug('Spawning `%s` with args `%s`', updateExe, args); spawn(updateExe, args, {  detached: true }).on('close', done);};  var check = function() { if (process.platform === 'win32') {  var cmd = process.argv[1];  debug('processing squirrel command `%s`', cmd);  var target = path.basename(process.execPath);    if (cmd === '--squirrel-install' || cmd === '--squirrel-updated') {   run(['--createShortcut=' + target + ''], app.quit);   return true;  }  if (cmd === '--squirrel-uninstall') {   run(['--removeShortcut=' + target + ''], app.quit);   return true;  }  if (cmd === '--squirrel-obsolete') {   app.quit();   return true;  } } return false;};  module.exports = check();            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 通州市| 甘肃省| 涞源县| 阿勒泰市| 丰台区| 辉南县| 广州市| 拉萨市| 奇台县| 九龙城区| 子洲县| 南投市| 昭平县| 吕梁市| 江油市| 神池县| 桐乡市| 宜丰县| 阳朔县| 乌鲁木齐县| 德令哈市| 巴里| 五峰| 芦溪县| 荥经县| 开阳县| 麻城市| 乐东| 长泰县| 九寨沟县| 天峻县| 密山市| 扶风县| 尚义县| 称多县| 南汇区| 香港| 玛纳斯县| 利川市| 玉溪市| 白沙|