Pulsa para ir al contenido principal
@capgo/electron-updater Actualizaciones Fuente abierta

Actualizador de Electron Plugin de Electron

Actualizaciones OTA en vivo para aplicaciones de Electron con la misma superficie que API actualizador capacitor

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

Usando @capgo/electron-updater

@capgo/electron-updater dará a las aplicaciones de Electron el mismo modelo de actualización en vivo Capgo @capgo/capacitor-updater. Lo inicializas en el proceso principal, expone el puente del renderizador a través de preload y llama notifyAppReady() en cada arranque para que la protección de rollback sepa que el paquete 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 carga previa

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

  • Llamar siempre notifyAppReady() temprano en el renderizador para que la protección de rollback funcione como se espera.
  • Mantener el camino de construcción estable 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 pila de liberación de backend.

Sigue adelante desde Usando @capgo/electron-updater

If estás utilizando Usando @capgo/electron-updater para planificar el trabajo de plugin nativo, conectalo con @capgo/actualizador de electron para el detalle de implementación en @capgo/electron-updater, Inicio con Actualizador de Electron para el detalle de implementación en Inicio con Actualizador de Electron, Directorio de Plugin de Capgo para el flujo de trabajo del producto en Directorio de Plugin de Capgo, Plugins de Capacitor por Capgo para el detalle de implementación en Plugins de Capacitor por Capgo, y Agregar o Actualizar Plugins para los detalles de implementación en la adición o actualización de plugins.

FAQ

FAQ del plugin de actualización de Electron

¿Cómo instalo el plugin de actualización de Electron en una aplicación de Electron?

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

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

Sí. La actualización de Electron es un paquete de Electron, por lo que funciona con cualquier framework web que se ejecute dentro de Electron, React, Vue, Angular, Svelte y JavaScript puro.

¿Es @capgo/electron-updater gratuito y de código abierto?

Sí. El código fuente code está público en GitHub en https://github.com/Cap-go/electron-updater/ y el paquete es gratuito para instalar desde npm. Se aceptan informes de errores y solicitudes de cambios.

Envíe cambios de Electron Updater sin esperar la revisión de la aplicación

Una vez que el plugin esté en tu tienda de construcción, Capgo actualizaciones en vivo empujan tus cambios de JavaScript, HTML y CSS a los usuarios en minutos

Comienza con Capgo