Guía
Tutoría sobre Actualizador de Electron
Usando @capgo/electron-updater
@capgo/electron-updater gives Electron apps the same Capgo live-update model as @capgo/capacitor-updaterUsted lo inicializa en el proceso principal, expone el puente del renderizador a través de preload, y llama notifyAppReady() Instalación
Configuración del proceso principal
bun add @capgo/electron-updater
Puente de carga previa
import { app, BrowserWindow } from 'electron';
import path from 'node:path';
import { ElectronUpdater, setupEventForwarding, setupIPCHandlers } from '@capgo/electron-updater';
const updater = new ElectronUpdater({
appId: 'com.example.desktop',
autoUpdate: true,
});
app.whenReady().then(async () => {
const window = new BrowserWindow({
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
contextIsolation: true,
},
});
const builtinPath = path.join(__dirname, 'www/index.html');
await updater.initialize(window, builtinPath);
setupIPCHandlers(updater);
setupEventForwarding(updater, window);
await window.loadFile(updater.getCurrentBundlePath());
});
da a las aplicaciones de Electron el mismo modelo de actualización en vivo como
import { exposeUpdaterAPI } from '@capgo/electron-updater/preload';
exposeUpdaterAPI();
Uso del renderizador
import { requireUpdater } from '@capgo/electron-updater/renderer';
const updater = requireUpdater();
await updater.notifyAppReady();
const latest = await updater.getLatest();
if (latest.url && !latest.error) {
const bundle = await updater.download({
url: latest.url,
version: latest.version,
checksum: latest.checksum,
});
await updater.next({ id: bundle.id });
}
Escuchar eventos de actualización
updater.addListener('download', ({ percent }) => {
console.log('Download progress', percent);
});
updater.addListener('updateFailed', ({ bundle }) => {
console.error('Update failed', bundle.version);
});
Desplegar un nuevo paquete
bun run build
bunx @capgo/cli@latest bundle upload --channel=production
Consejos prácticos
- Siempre llamar
notifyAppReady()temprano en el renderizador para que la protección de rollback funcione como se espera. - Mantener estable el camino de construcción y dejar que el actualizador decida si cargar el paquete embarcado o uno descargado.
- Reutilizar el mismo canal y modelo de lanzamiento Capgo que ya usas en móviles cuando tu aplicación de Electron comparte una canalización de lanzamiento de backend.
Continuar desde Usando @capgo/electron-updater
Si estás usando Usando @capgo/electron-updater para planificar el trabajo de plugin nativo, conectarlo con @capgo/electron-updater for the implementation detail in @capgo/electron-updater, Comenzar con el Actualizador de Electron para los detalles de implementación en Comenzar con el Actualizador de Electron Directorio de Plugins de Capgo para el flujo de trabajo del producto en Directorio de Plugins de Capgo, Plugins de Capacitor por Capgo para los detalles de implementación en Plugins de Capacitor por Capgo, y Agregar o Actualizar Plugins para los detalles de implementación en Agregar o Actualizar Plugins.