Saltar al contenido principal
@capgo/electron-updater Actualizaciones Código abierto

Updater de Electron Plugin para Electron

Live updates OTA para apps de Electron con la misma superficie de API que capacitor-updater

Instalar

bun add @capgo/electron-updater
npm, pnpm o yarn
  • npm install @capgo/electron-updater
  • pnpm add @capgo/electron-updater
  • yarn add @capgo/electron-updater

Guía

Cómo usar Electron Updater en Electron

Uso de @capgo/electron-updater

@capgo/electron-updater brinda a las apps de Electron el mismo modelo de Capgo Live Update que @capgo/capacitor-updater. Lo inicializas en el proceso principal, expones el bridge del renderer mediante preload y llamas a notifyAppReady() en cada inicio para que la protección de rollback sepa que el bundle está sano.

Instalación

bun add @capgo/electron-updater

Configuración del proceso principal

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());
});

Puente de preload

import { exposeUpdaterAPI } from '@capgo/electron-updater/preload';

exposeUpdaterAPI();

Uso en el renderer

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 bundle

bun run build
bunx @capgo/cli@latest bundle upload --channel=production

Consejos prácticos

  • Llamar siempre a notifyAppReady() al principio del renderer para que la protección contra rollback funcione correctamente.
  • Mantén estable la ruta integrada y deja que el updater decida si cargar el bundle incluido o uno descargado.
  • Reutiliza el mismo canal Capgo y el modelo de rollout que ya usas en móvil si tu app de Electron comparte el pipeline de release del backend.

Continúa desde Usando @capgo/electron-updater

Si estás usando Uso de @capgo/electron-updater para planificar el trabajo con plugins nativos, conéctalo con @capgo/electron-updater para los detalles de implementación en @capgo/electron-updater, Primeros pasos con Electron Updater para los detalles de implementación en Primeros pasos con Electron Updater, Directorio de plugins de Capgo para el flujo de trabajo del producto en Capgo Plugin Directory, Plugins de Capacitor por Capgo para los detalles de implementación en Capacitor Plugins de Capgo, y Añadir o actualizar plugins para los detalles de implementación al añadir o actualizar plugins.

FAQ

FAQ del plugin Electron Updater

¿Cómo instalo el plugin Electron Updater en una app de Electron?

Ejecuta "bun add @capgo/electron-updater" (o "npm install @capgo/electron-updater") y sigue los pasos de configuración de Electron en la guía y en el README de GitHub.

¿Funciona @capgo/electron-updater con React, Vue y Angular?

Sí. Electron Updater es un paquete de Electron, por lo que funciona con cualquier framework web que se ejecute dentro de Electron: React, Vue, Angular, Svelte o JavaScript puro.

¿Es @capgo/electron-updater gratuito y open source?

Sí. El código fuente de code es público en GitHub: https://github.com/Cap-go/electron-updater/, y el paquete se puede instalar gratis desde npm. Los reportes de bugs y pull requests son bienvenidos.

Publica cambios de Electron Updater sin esperar la revisión de la app

Una vez que el plugin esté en tu store build, Capgo live updates envía tus cambios de JavaScript, HTML y CSS a los usuarios en minutos.

Empieza con Capgo