У меня есть свой собственный сервер, на который я загрузил установщик приложения через FTP. Его имя quickmargo Setup 1.0.0.exe
и оно доступно в
https://quickmargo.pl/dist/download/quickmargo Setup 1.0.0.exe
Также через FTP я загрузил latest.yml
в тот же каталог, и он доступен на
https://quickmargo.pl/dist/download/latest.yml
В моем проекте в index.js у меня есть
import { autoUpdater } from 'electron-updater'
autoUpdater.setFeedURL('https://quickmargo.pl/dist/download');
autoUpdater.on('update-downloaded', () => {
autoUpdater.quitAndInstall()
});
autoUpdater.on('update-available', (ev, info) => {
alert('Update required!');
});
app.on('ready', async () => {
if (process.env.NODE_ENV === 'production') {
await autoUpdater.checkForUpdates()
}
});
В package.json у меня есть "version": "1.0.0",
и внутри build:{}
У меня есть:
"win": {
"icon": "build/icons/icon.ico",
"publish": [{
"provider": "generic",
"url": "https://quickmargo.pl/dist/download"
}]
},
(меня не волнуют другие платформы)
Теперь предположим, что я внес некоторые изменения в свое приложение и хочу загрузить версию 1.0.1, и я хочу, чтобыприложение для автоматического обновления, если кто-то уже скачал установщик и установил мое приложение на своем компьютере.
Скажите, пожалуйста, все ли, что я сделал до сих пор, в порядке и каков следующий шаг. Я считаю следующее:
- изменить
version
на 1.0.1
в package.json - снова запустить команду сборки в терминале
- загрузить новый установщик вручную в то же местона моем сервере
Редактировать
Я сделал выше три шага, плюс я также загрузил новый latest.yml (с версией 1.0.1), и в результате, когдаТеперь я запускаю ранее установленную (перед загрузкой новой версии на сервер) версию 1.0.0 на другом ПК, затем он не обнаруживает, что я добавил 1.0.1 на сервер, и не обновляет и не отображает всплывающее окно или что-то еще. Что я делаю не так?
Редактировать 2
Я пытаюсь решить это самостоятельно, и теперь я загрузил 1.0.2, так что теперь ссылка для загрузки приложенияis:
https://quickmargo.pl/dist/download/quickmargo Setup 1.0.2.exe
Edit 3
Я пытался решить ее самостоятельно Iотредактированный код в index.js. Я редактировал также выше. alert('Update required!');
на update-available
событие никогда не происходит. Должно появиться окно с сообщением об ошибке, оповещение не определено. Но, по-видимому, доступное для обновления событие никогда не генерируется.
Дополнительная информация:
- Мое приложение было сгенерировано с помощью vue-electronic
v1.0.6
шаблон. - Моя версия электронного обновления -
4.1.2
npm run build
фактически вызывает некоторый код из шаблона, который находится в .electron-vue/build.js
, вы можете увидеть этот файл по ссылке выше (например, он установил NODE_ENVСценарий в package.json: "build": "node .electron-vue/build.js && electron-builder",
. - Я не хочу размещать релизы на github, потому что мой репозиторий является частным, и я увидел некоторую информацию в файле Electron.build что я не должен этого делать.
- Я также видел в некоторых выпусках информацию о том, что я могу создать новое репо только для релизов, но я считаю размещение всего на своем собственном сервере более чистым подходом.