Getting Started con Electron Updater
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo 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.
Questa guida ti accompagna nella configurazione di @capgo/electron-updater nella tua applicazione Electron per abilitare gli aggiornamenti live di JavaScript/HTML/CSS.
Prerequisiti
Sezione intitolata “Prerequisiti”- Electron 20.0.0 o superiore
- Node.js 18 o superiore
- Un account Capgo (registrati su capgo.app)
Installazione
Sezione intitolata “Installazione”Puoi usare il nostro setup assistito dall'IA per installare il plugin. Aggiungi le skill Capgo al tuo strumento di IA usando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi usa il seguente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/electron-updater` plugin in my project.Se preferisci la configurazione manuale, installa il plugin eseguendo questi comandi e segui le istruzioni specifiche per piattaforma qui sotto:
-
Installa il pacchetto:
Finestra del terminale npm install @capgo/electron-updater -
Recupera il tuo App ID dalla dashboard di Capgo. Se non hai ancora creato un'app, esegui:
Finestra del terminale npx @capgo/cli@latest init
Avvio rapido
Sezione intitolata “Quick start”import { requireUpdater } from '@capgo/electron-updater/renderer';
const updater = requireUpdater();await updater.notifyAppReady();Errori comuni
Sezione intitolata “Errori comuni”- Chiama
notifyAppReady()all'avvio — entro il timeout configurato — prima dell'inizializzazione lenta della UI. - Assicurati che la firma Capgo corrisponda nel main process.
- Configura i canali di update prima del rilascio.
L'Electron Updater richiede una configurazione in tre punti: main process, preload script e renderer process.
Processo principale
Sezione intitolata “Main Process”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 di preload
Sezione intitolata “Preload Script”import { exposeUpdaterAPI } from '@capgo/electron-updater/preload';
// Expose the updater API to the renderer processexposeUpdaterAPI();Processo di Renderer
Sezione intitolata “Renderer Process”// 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());Controllo aggiornamenti
Sezione intitolata “Checking for Updates”Con autoUpdate: true, l'updater controlla automaticamente la presenza di aggiornamenti. Puoi anche avviare controlli manuali:
// 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 });}Ascolto degli Eventi
Sezione intitolata “Ascolto degli Eventi”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);});Deploy degli Aggiornamenti
Sezione intitolata “Deploy degli Aggiornamenti”Usa Capgo CLI per fare l'upload degli aggiornamenti:
# Build your appnpm run build
# Upload to Capgonpx @capgo/cli@latest bundle upload --channel=productionLa tua app Electron rileverà e scaricherà automaticamente il nuovo bundle al prossimo controllo.
Menu Debug
Sezione intitolata “Menu Debug”Abilita il menu debug durante lo sviluppo:
const updater = new ElectronUpdater({ appId: 'YOUR_CAPGO_APP_ID', debugMenu: true, // Enable debug menu});Premi Ctrl+Shift+D (o Cmd+Shift+D su Mac) per aprire il menu debug e:
- Visualizza info sul bundle corrente
- Passa tra i bundle disponibili
- Ripristina la versione predefinita
- Visualizza info su device e channel
Opzioni di configurazione
Sezione intitolata “Opzioni di configurazione”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)});Prossimi passi
Sezione intitolata “Prossimi passi”- Riferimento API - Esplora tutti i metodi disponibili
- Canali - Scopri i canali di deployment
- Rollback - Comprendi la protezione dal rollback
Continua da Getting Started con Electron Updater
Sezione intitolata “Continua da Getting Started con Electron Updater”Se stai usando Guida rapida a Electron Updater per pianificare il lavoro sui plugin nativi, collegalo a Utilizzo di @capgo/electron-updater per la funzionalità nativa in Utilizzo di @capgo/electron-updater, Directory dei plugin di Capgo per il workflow del prodotto nella Capgo Plugin Directory, Plugin Capacitor di Capgo per i dettagli di implementazione in Capacitor Plugins di Capgo, Aggiunta o aggiornamento dei plugin per i dettagli su come aggiungere o aggiornare i plugin, e Alternative ai plugin Ionic Enterprise per il workflow del prodotto in Alternative ai plugin Ionic Enterprise.