Démarrer avec Electron Updater
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/electron-updater`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/electron-updater/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Ce guide vous accompagne dans la configuration de @capgo/electron-updater dans votre application Electron pour activer les live updates JavaScript/HTML/CSS.
Prerequisites
Section intitulée « Prérequis »- Electron 20.0.0 ou supérieur
- Node.js 18 ou supérieur
- Un compte Capgo (inscrivez-vous sur capgo.app)
Installation
Section intitulée « Installation »Vous pouvez utiliser notre configuration assistée par IA pour installer le plugin. Ajoutez les skills Capgo à votre outil d'IA avec la commande suivante :
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsUtilisez ensuite le prompt suivant :
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/electron-updater` plugin in my project.Si vous préférez une installation manuelle, installez le plugin en exécutant les commandes suivantes et suivez les instructions spécifiques à chaque plateforme ci-dessous :
-
Installez le package :
Fenêtre de terminal npm install @capgo/electron-updater -
Récupérez votre App ID dans le dashboard Capgo. Si vous n'avez pas encore créé d'application, exécutez :
Fenêtre de terminal npx @capgo/cli@latest init
Démarrage rapide
Section intitulée « Démarrage rapide »import { requireUpdater } from '@capgo/electron-updater/renderer';
const updater = requireUpdater();await updater.notifyAppReady();Erreurs courantes
Section intitulée « Erreurs courantes »- Appelez
notifyAppReady()au début du lancement — dans le délai configuré — avant l'initialisation lente de l'interface. - Alignez la signature Capgo dans le processus principal.
- Set update channels before shipping.
Configuration
Section intitulée « Configuration »L'Electron Updater doit être configuré à trois endroits : le processus principal, le script de preload et le processus de rendu.
Processus principal
Section intitulée « Processus principal »import { app, BrowserWindow } from 'electron';import * as path from 'path';import { ElectronUpdater, setupIPCHandlers, setupEventForwarding,} from '@capgo/electron-updater';
// Create updater instance with your Capgo App IDconst updater = new ElectronUpdater({ appId: 'YOUR_CAPGO_APP_ID', // e.g., 'com.example.myapp' autoUpdate: true,});
app.whenReady().then(async () => { const mainWindow = new BrowserWindow({ width: 1200, height: 800, webPreferences: { preload: path.join(__dirname, 'preload.js'), contextIsolation: true, }, });
// Initialize updater with window and builtin path const builtinPath = path.join(__dirname, 'www/index.html'); await updater.initialize(mainWindow, builtinPath);
// Setup IPC communication between main and renderer setupIPCHandlers(updater); setupEventForwarding(updater, mainWindow);
// Load the current bundle (either builtin or downloaded update) await mainWindow.loadFile(updater.getCurrentBundlePath());});
app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); }});Script de preload
Section intitulée « Script de preload »import { exposeUpdaterAPI } from '@capgo/electron-updater/preload';
// Expose the updater API to the renderer processexposeUpdaterAPI();Processus de rendu
Section intitulée « Processus de rendu »// renderer.ts (or in your app's entry point)import { requireUpdater } from '@capgo/electron-updater/renderer';
const updater = requireUpdater();
// CRITICAL: Call this on every app launch!// This confirms the bundle loaded successfully and prevents rollbackawait updater.notifyAppReady();
console.log('App ready, current bundle:', await updater.current());Vérifier les mises à jour
Section intitulée « Vérification des mises à jour »Avec autoUpdate: true, l'updater vérifie automatiquement les mises à jour. Vous pouvez aussi lancer des vérifications manuelles :
// Check for updates manuallyconst latest = await updater.getLatest();
if (latest.url && !latest.error) { console.log('Update available:', latest.version);
// Download the update const bundle = await updater.download({ url: latest.url, version: latest.version, checksum: latest.checksum, });
console.log('Downloaded bundle:', bundle.id);
// Option 1: Queue for next restart await updater.next({ id: bundle.id });
// Option 2: Apply immediately and reload // await updater.set({ id: bundle.id });}Écouter les événements
Section intitulée « Écoute des événements »Track update progress and status with events:
// Download progressupdater.addListener('download', (event) => { console.log(`Download progress: ${event.percent}%`);});
// Update availableupdater.addListener('updateAvailable', (event) => { console.log('New version available:', event.bundle.version);});
// Download completedupdater.addListener('downloadComplete', (event) => { console.log('Download finished:', event.bundle.id);});
// Update failedupdater.addListener('updateFailed', (event) => { console.error('Update failed:', event.bundle.version);});Déployer des mises à jour
Section intitulée « Déploiement des mises à jour »Utilisez Capgo CLI pour envoyer les mises à jour :
# Build your appnpm run build
# Upload to Capgonpx @capgo/cli@latest bundle upload --channel=productionVotre application Electron détectera et téléchargera automatiquement le nouveau bundle lors de la prochaine vérification.
Menu de debug
Section intitulée « Menu de débogage »Activez le menu de débogage pendant le développement :
const updater = new ElectronUpdater({ appId: 'YOUR_CAPGO_APP_ID', debugMenu: true, // Enable debug menu});Appuyez sur Ctrl+Shift+D (ou Cmd+Shift+D sur Mac) pour ouvrir le menu de débogage et :
- Afficher les informations du bundle actuel
- Basculer entre les bundles disponibles
- Revenir à la version intégrée
- Afficher les informations de l’appareil et du canal
Options de configuration
Section intitulée « Options de configuration »const updater = new ElectronUpdater({ // Required appId: 'com.example.app',
// Server URLs (defaults to Capgo Cloud) updateUrl: 'https://plugin.capgo.app/updates', channelUrl: 'https://plugin.capgo.app/channel_self', statsUrl: 'https://plugin.capgo.app/stats',
// Behavior autoUpdate: true, // Enable auto-updates appReadyTimeout: 10000, // MS before rollback (default: 10s) autoDeleteFailed: true, // Delete failed bundles autoDeletePrevious: true, // Delete old bundles after successful update
// Channels defaultChannel: 'production',
// Security publicKey: '...', // For end-to-end encryption
// Debug debugMenu: false, // Enable debug menu disableJSLogging: false, // Disable console logs
// Periodic Updates periodCheckDelay: 0, // Seconds between checks (0 = disabled, min 600)});Étapes suivantes
Section intitulée « Étapes suivantes »- Référence API - Explorer toutes les méthodes disponibles
- Canaux - Découvrir les canaux de déploiement
- Rollbacks - Comprendre la protection contre les rollbacks
Continuer après la prise en main d'Electron Updater
Section intitulée « Pour aller plus loin après Démarrage avec Electron Updater »Si vous utilisez Démarrer avec Electron Updater pour planifier le travail sur les plugins natifs, connectez-l’à Utiliser @capgo/electron-updater pour la fonctionnalité native dans « Utiliser @capgo/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 Plugins Capacitor par Capgo, Ajouter ou mettre à jour des plugins pour les détails d'implémentation dans Ajout ou mise à jour de plugins, et Alternatives aux plugins Ionic Enterprise pour le workflow produit dans Alternatives aux plugins Ionic Enterprise.