Aller au contenu principal
@capgo/electron-updater Mises à jour Open source

Updater Electron Plugin Electron

Mises à jour OTA pour les apps Electron avec la même surface API que capacitor-updater

Installer

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

Guide

Comment utiliser Electron Updater dans Electron

Utiliser @capgo/electron-updater

@capgo/electron-updater offre aux apps Electron le même modèle de live update Capgo que @capgo/capacitor-updater. Vous l'initialisez dans le processus principal, exposez le bridge du renderer via le preload, et appelez notifyAppReady() à chaque lancement pour que la protection rollback sache que le bundle est sain.

Installation

bun add @capgo/electron-updater

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

Pont de preload

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

exposeUpdaterAPI();

Utilisation dans le 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 });
}

Écouter les événements de mise à jour

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

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

Déployer un nouveau bundle

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

Conseils pratiques

  • Appelez toujours notifyAppReady() tôt dans le renderer pour que la protection rollback fonctionne comme prévu.
  • Gardez le chemin intégré stable et laissez l'updater décider s'il doit charger le bundle fourni ou un bundle téléchargé.
  • Réutilisez le même canal Capgo et le même modèle de déploiement progressif que sur mobile lorsque votre application Electron partage un pipeline de release backend.

Continuer avec l'utilisation de @capgo/electron-updater

Si vous utilisez Utiliser @capgo/electron-updater pour planifier le travail sur les plugins natifs, connectez-l’à @capgo/electron-updater pour les détails d'implémentation dans @capgo/electron-updater, Démarrer avec Electron Updater pour les détails d'implémentation dans Démarrer avec Electron Updater, Capgo Répertoire des plugins pour le workflow produit dans Capgo Plugin Directory, Plugins Capacitor par Capgo pour les détails d'implémentation dans les plugins Capacitor par Capgo, et Ajouter ou mettre à jour des plugins pour les détails d'implémentation dans Adding or Updating Plugins.

FAQ

FAQ du plugin Electron Updater

Comment installer le plugin Electron Updater dans une application Electron ?

Exécutez « bun add @capgo/electron-updater » (ou « npm install @capgo/electron-updater »), puis suivez les étapes de configuration Electron dans le guide et le README GitHub.

Est-ce que @capgo/electron-updater fonctionne avec React, Vue et Angular ?

Oui. Electron Updater est un package Electron, il fonctionne donc avec n'importe quel framework web qui tourne dans Electron : React, Vue, Angular, Svelte et JavaScript pur.

Est-ce que @capgo/electron-updater est gratuit et open source ?

Oui. Le code source de code est public sur GitHub à l'adresse https://github.com/Cap-go/electron-updater/ et le package est gratuit à installer via npm. Les rapports de bugs et les pull requests sont les bienvenus.

Déployez les changements d'Electron Updater sans attendre la validation de l'app

Une fois le plugin intégré à votre build de store, Capgo live updates déploie vos changements JavaScript, HTML et CSS aux utilisateurs en quelques minutes.

Commencez avec Capgo