Автоматически обновлять приложения с помощью electronic-updater

Electron

Разработчики внешнего интерфейса могут использовать Electron для простого написания приложений для ПК, и существует множество способов обновления приложений, см. подробности.обновить приложение.

Мой проект построен на основе electronic-vue, для сборки и упаковки инсталляционного пакета используется electronic-builder, поэтому для обновления естественным выбором будет electron-updater.

  1. Для реализации автоматических обновлений сначала необходимо установить пакет electronic-updater:
yarn add electron-updater@3.1.5 -D

Здесь есть яма. Если вы используете тот же проект electronic-vue, что и я, электронная версия также должна быть 2.x. ", если вы установите последний электронный модуль обновления напрямую, ваш модуль обновления сообщит об ошибке.

Итак, вот два варианта: один — обновить свой электрон, а другой — установить электрон-апдейтер 3.x.

  1. Затем внесите небольшое изменение в package.json:
  ...
  "build": {
    "productName": "xingsanhao",
    "appId": "com.example.yourapp",
    "directories": {
      "output": "build"
    },
    "publish": [
      {
        "provider": "generic",
        "url": "http://10.0.1.42:88/"
      }
    ],
    "files": [
      "dist/electron/**/*"
    ],
    ...

buildСодержимое в нем — это конфигурация, необходимая для упаковки электрона-сборщика, теперь нам нужно добавить в него конфигурацию, требуемую для электронного-апдейтера.publish, здесь я выбираю общий сервер, конечно, вы также можете использовать GitHub для бесплатного хостинга, пожалуйста, обратитесь кДокументация.

  1. Создайте файловый сервер, и тестовую среду можно будет быстро построить напрямую с помощью экспресс-кода:
// app.js

var express = require('express')
var fs = require('fs')
const path = require('path')
var app = express()

app.use(express.static(path.join(__dirname, './client')))

var server = app.listen(88, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});

Упакуйте сгенерированный инсталляционный пакет иlatest.ymlфайл наclientэту папку, чтобы мы могли пройтиhttp://10.0.1.42:88/latest.ymlдоступ кlatest.ymlэтот файл.

Таким образом, в конфигурации в package.json элемент URL-адреса под публикацией записывается напрямую.http://10.0.1.42:88/Просто сделай это.

  1. Наконец, проверьте обновленный код

Я не буду писать код, Baidu иДокументацияЕсть оба, это относительно просто, хотите ли вы автоматически проверять наличие обновлений или пользователи вручную проверяют наличие обновлений, это зависит от вашего настроения.