Zum Hauptinhalt springen
@capgo/electron-updater Updates Open Source

Electron Updater Electron Plugin

OTA Live Updates für Electron-Apps mit derselben API Oberfläche wie capacitor-updater

Installieren

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

Anleitung

Electron Updater in Electron nutzen

@capgo/electron-updater verwenden

@capgo/electron-updater ermöglicht Electron-Apps dasselbe Capgo Live-Update-Modell wie @capgo/capacitor-updater. Du initialisierst es im Main Process, stellst die Renderer-Bridge über Preload bereit und rufst notifyAppReady() bei jedem Start, damit der Rollback-Schutz erkennt, dass das Bundle fehlerfrei ist.

Installation

bun add @capgo/electron-updater

Main-Prozess-Setup

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

Preload-Bridge

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

exposeUpdaterAPI();

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

Auf Update-Events lauschen

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

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

Neues Bundle deployen

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

Praxis-Tipps

  • Immer aufrufen notifyAppReady() früh im Renderer, damit der Rollback-Schutz wie vorgesehen funktioniert.
  • Halte den eingebauten Pfad stabil und überlasse dem Updater die Entscheidung, ob das mitgelieferte oder ein heruntergeladenes Bundle geladen wird.
  • Nutze denselben Capgo Channel und das Rollout-Modell, das du bereits auf Mobile verwendest, wenn deine Electron-App dieselbe Backend-Release-Pipeline nutzt.

Weiterlesen: @capgo/electron-updater nutzen

Wenn du es nutzt @capgo/electron-updater verwenden Um die Arbeit an nativen Plugins zu planen, verbinde sie mit @capgo/electron-updater für die Implementierungsdetails in @capgo/electron-updater, Erste Schritte mit Electron Updater für die Implementierungsdetails in Getting Started with Electron Updater, Capgo Plugin-Verzeichnis für den Produkt-Workflow im Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo für die Implementierungsdetails in Capacitor Plugins von Capgo, und Plugins hinzufügen oder aktualisieren für die Implementierungsdetails in Plugins hinzufügen oder aktualisieren.

FAQ

Electron Updater Plugin FAQ

Wie installiere ich das Electron Updater Plugin in einer Electron-App?

Führe "bun add @capgo/electron-updater" (oder "npm install @capgo/electron-updater") aus und folge dann den Electron-Setup-Schritten im Guide und der README von GitHub.

Funktioniert @capgo/electron-updater mit React, Vue und Angular?

Ja. Electron Updater ist ein Electron-Package, daher funktioniert es mit jedem Web-Framework, das in Electron läuft – egal ob React, Vue, Angular, Svelte oder plain JavaScript.

Ist @capgo/electron-updater kostenlos und Open Source?

Ja. Der Source-code ist öffentlich auf GitHub unter https://github.com/Cap-go/electron-updater/ und das Package lässt sich kostenlos von npm installieren. Bug-Reports und Pull Requests sind willkommen.

Electron-Updater-Änderungen ohne Warten auf das App-Review ausrollen

Sobald das Plugin in deinem Store-Build ist, bringt Capgo mit Live-Updates deine JavaScript-, HTML- und CSS-Änderungen in Minuten zu den Nutzern.

Starte mit Capgo