Saltare al contenuto principale
@capgo/aggiornatore di Electron Aggiornamenti Sorgente aperta

Aggiornamento di Electron Plugin di Electron

Aggiornamenti OTA per le app di Electron con la stessa superficie di API come capacitor-aggiornatore

Installa

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

Guida

Come utilizzare Electron Updater in Electron

Utilizzando @capgo/electron-updater

@capgo/electron-updater gives Electron apps the same Capgo live-update model as @capgo/capacitor-updaterInizializzalo nel processo principale, esponi il ponte del renderer attraverso preload e chiama notifyAppReady() su ogni avvio affinché la protezione del rollback sappia che il bundle è sano.

Installation

bun add @capgo/electron-updater

Ponte di preload

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

Utilizzo del renderer

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

exposeUpdaterAPI();

Ascolta gli eventi di aggiornamento

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

Distribuisci un nuovo bundle

updater.addListener('download', ({ percent }) => {
  console.log('Download progress', percent);
});

updater.addListener('updateFailed', ({ bundle }) => {
  console.error('Update failed', bundle.version);
});

Consigli pratici

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

Chiamalo sempre

  • Installation notifyAppReady() in anticipo nel renderer affinché la protezione del rollback funzioni come previsto.
  • Mantieni stabile la cartella costruita e lascia che l'aggiornatore decida se caricare il bundle spedito o uno scaricato.
  • Ripeti lo stesso canale e il modello di rilascio Capgo che già utilizzi su mobile quando la tua app Electron condivide una pipeline di rilascio backend.

Continua da Utilizzo di @capgo/electron-updater

Se stai utilizzando Utilizzo di @capgo/electron-updater per pianificare il lavoro di plugin nativo, connettilo con @capgo/aggiornamento-elettronico per il dettaglio di implementazione in @capgo/electron-updater Iniziare con l'aggiornatore di Electron per il dettaglio di implementazione in Iniziare con l'aggiornatore di Electron Capgo Directory dei plugin per il workflow del prodotto nella cartella dei plugin Capgo Capacitor Plugins per Capgo per i dettagli di implementazione in Capacitor Plugins per Capgo, e Aggiungere o aggiornare i plugin per i dettagli di implementazione in Aggiungere o aggiornare i plugin.

FAQ

Aggiornamento di Electron plugin FAQ

Come posso installare il plugin di aggiornamento di Electron in un'app di Electron?

Esegui "bun add @capgo/electron-updater" (o "npm install @capgo/electron-updater"), poi segui i passaggi di configurazione di Electron nella guida e la GitHub README.

Funziona @capgo/electron-updater con React, Vue e Angular?

Sì. L'aggiornamento di Electron è un pacchetto di Electron, quindi funziona con qualsiasi framework web che esegue all'interno di Electron, React, Vue, Angular, Svelte e JavaScript puro.

È @capgo/electron-updater gratuito e open source?

Sì. Il codice sorgente di code è pubblico su GitHub in https://github.com/Cap-go/electron-updater/ e il pacchetto è gratuito per l'installazione da npm. I segnalibri di bug e le richieste di pull sono accetti.

Invia modifiche di Electron Updater senza attendere la revisione dell'app

Una volta che il plugin è presente nella tua store build, Capgo le aggiornamenti in tempo reale inviano i cambiamenti JavaScript, HTML e CSS ai tuoi utenti in pochi minuti.

Avvia con Capgo