Passer à la navigation principale

Extension Electron Updater Extension Electron

OTA live updates for Electron apps with the same API surface as 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

En utilisant @capgo/electron-updater

@capgo/electron-updater gives Electron apps the same Capgo live-update model as @capgo/capacitor-updaterVous l'initialisez dans le processus principal, exposez le pont de rendu à travers preload et appelez notifyAppReady() à chaque lancement afin que la protection de 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 préchargement

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

exposeUpdaterAPI();

Utilisation du rendu

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

Écoutez les événements d'actualisation

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

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

Déployez un nouveau bundle

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

Conseils pratiques

  • Appelez toujours notifyAppReady() tôt dans le navigateur pour que la protection de rollback fonctionne comme prévu.
  • Conservez la voie de construction stable et laissez l'actualiseur décider de charger le bundle embarqué ou un bundle téléchargé.
  • Reprenez le même canal et le modèle de déploiement Capgo que vous utilisez déjà sur mobile lorsque votre application Electron partage une pipeline de publication de backend.

Continuez à partir de l'utilisation de @capgo/electron-updater

Si vous utilisez L'utilisation de @capgo/electron-updater planer le travail du plugin natif, connectez-l’avec @capgo/mise à jour de l'électron pour les détails d'implémentation dans @capgo/electron-updater, Démarrage avec Electron Updater pour les détails d'implémentation dans Getting Started avec Electron Updater, Capgo Plugin Directory pour le flux de travail du produit dans le répertoire du plugin Capgo Capacitor Plugins par Capgo pour le détail d'implémentation dans Capacitor Plugins par Capgo, et Ajouter ou Mettre à jour les plugins pour le détail d'implémentation dans Ajouter ou Mettre à jour les 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 d'Electron dans le guide et la documentation de GitHub.

Le plugin @capgo/electron-updater fonctionne-t-il avec React, Vue et Angular ?

Oui. Le plugin Electron Updater est un package Electron, il fonctionne donc avec tout framework web qui tourne à l'intérieur d'Electron, React, Vue, Angular, Svelte et JavaScript pur.

Le plugin @capgo/electron-updater est-il 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 pour l'installer depuis npm. Les rapports de bogues et les demandes de mise à jour sont les bienvenus.

Envoyez les modifications de Electron Updater sans attendre l'examen de l'application

Une fois le plugin est dans votre magasin de construction, les mises à jour en direct Capgo envoient vos modifications JavaScript, HTML et CSS aux utilisateurs en quelques minutes.

Commencez avec Capgo