Tengo mi propio servidor donde cargué el instalador de la aplicación a través de FTP. Su nombre es quickmargo Setup 1.0.0.exe
y está disponible en
https://quickmargo.pl/dist/download/quickmargo Setup 1.0.0.exe
También a través de FTP subí latest.yml
al mismo directorio y está disponible en
https://quickmargo.pl/dist/download/latest.yml
En mi proyecto en index.js tengo
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()
}
});
En package.json tengo "version": "1.0.0",
y dentro build:{}
tengo:
"win": {
"icon": "build/icons/icon.ico",
"publish": [{
"provider": "generic",
"url": "https://quickmargo.pl/dist/download"
}]
},
(No me importan otras plataformas)
Ahora supongamos que he realizado algunos cambios en mi aplicación y quiero cargar la versión 1.0.1 y quiero que mi aplicación se actualice automáticamente si alguien ya descargó el instalador e instaló mi aplicación en su máquina.
Dime por favor si todo lo que hice hasta ahora está bien y cuál es el siguiente paso. Considero lo siguiente:
- cambiar
version
a1.0.1
en package.json - ejecutar el comando de compilación en la terminal nuevamente
- cargar manualmente un nuevo instalador al mismo lugar en mi servidor
Editar
Hice los tres pasos anteriores y también cargué el último latest.yml (con la versión 1.0.1) y el resultado es que cuando ahora ejecuto la versión 1.0.0 instalada previamente (antes de cargar la nueva versión en el servidor) en otra PC, entonces no lo hace detecta que agregué 1.0.1 al servidor y no se actualiza ni muestra alguna ventana emergente ni nada. ¿Qué estoy haciendo mal?
Editar 2
Estoy tratando de resolverlo por mi cuenta y ahora cargué 1.0.2, así que ahora el enlace para descargar la aplicación es:
https://quickmargo.pl/dist/download/quickmargo Setup 1.0.2.exe
Editar 3
Estaba tratando de resolverlo por mi cuenta. Edité el código en index.js. Edité también arriba. alert('Update required!');
en update-available
caso de que nunca ocurra. Debería mostrarme la ventana de mensaje de error de que la alerta no está definida. Pero, aparentemente, el evento de actualización disponible nunca se emite.
Información adicional:
- Mi aplicación se generó con la placa de
v1.0.6
referencia vue-electron . - Mi versión de actualización electrónica es
4.1.2
npm run build
En realidad invocar algún código de texto modelo que está en.electron-vue/build.js
. se puede ver este archivo en el enlace de arriba (por ejemplo, se establece NODE_ENV a la producción de secuencias de comandos en package.json es:"build": "node .electron-vue/build.js && electron-builder",
.- No quiero alojar lanzamientos en github porque mi repositorio es privado y vi cierta información en electron.build docs que no debería hacer eso.
- También vi información en algún problema que podía crear un nuevo repositorio solo para lanzamientos, pero considero alojar todo en mi propio servidor como un enfoque más limpio.
electron-log
para darle al autoUpdater un registrador para usar ( const logger = require("electron-log"); autoUpdater.logger = logger; logger.transports.file.level = "debug";
); esto debería imprimir información si su se encontró el servidor y si se encontró una actualización. Si obtiene un error, puede agregarlo a su pregunta.