Iniziare con Electron Updater
Copia una riga 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 guida attraverso la configurazione di @capgo/electron-updater in il tuo'applicazione Electron per abilitare gli aggiornamenti JavaScript/HTML/CSS in tempo reale.
Sottosezione intitolata “Requisiti”
Electron 20.0.0 o superiore- Node.js 18 o superiore
- Un account __CAPGO_KEEP_0__ (iscrivi toi su
- Capgo.app capgo.app)
Sottosezione intitolata “Installazione”
Puoi utilizzare il nostro Setup Assistito da AI per installare il plugin. Aggiungi le competenze __CAPGO_KEEP_0__ al tuo strumento AI utilizzando il seguente comando:You can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsUsa poi 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 l'installazione manuale, installa il plugin eseguendo i seguenti comandi e segui le istruzioni specifiche per la piattaforma riportate di seguito:
-
Installa il pacchetto:
Finestra del terminale bun add @capgo/electron-updater -
Ottieni il tuo ID App dal dashboard Capgo. Se non hai ancora creato un'app, esegui:
Finestra del terminale npx @capgo/cli@latest init
Il aggiornatore di Electron richiede la configurazione in tre luoghi: processo principale, script di caricamento predefinito e processo di rendering.
Processo Principale
Sezione intitolata “Processo Principale”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 Caricamento Predefinito
Sezione intitolata “Script di Caricamento Predefinito”import { exposeUpdaterAPI } from '@capgo/electron-updater/preload';
// Expose the updater API to the renderer processexposeUpdaterAPI();Processo di Rendering
Sezione intitolata “Processo di Rendering”// 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());Sezione intitolata “Verifica Aggiornamenti”
ConWith autoUpdate: truel'aggiornatore controlla automaticamente gli aggiornamenti. Puoi anche attivare 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 });}Ascoltare gli eventi
Sezione intitolata “Ascoltare gli eventi”Seguire lo stato e il progresso degli aggiornamenti con gli eventi:
// 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);});Distribuzione degli Aggiornamenti
Sezione intitolata “Distribuzione degli Aggiornamenti”Utilizza i Capgo CLI per caricare gli aggiornamenti:
# Build your appnpm run build
# Upload to Capgonpx @capgo/cli@latest bundle upload --channel=productionIl tuo'app Electron rileverà automaticamente e scaricherà il nuovo bundle alla prossima verifica.
Menu di debug
Sezione intitolata “Menu di debug”Abilita il menu di 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 di debug e:
- Visualizza informazioni sulla bundle corrente
- Scegli tra le bundle disponibili
- Ripristina alla versione predefinita
- Visualizza informazioni sul dispositivo e sul canale
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)});Passaggi successivi
Sezione intitolata “Passaggi successivi”- API Riferimento - Esplora tutti i metodi disponibili
- Canali - Scopri i canali di distribuzione
- Ripristini - Comprendi la protezione dei ripristini
Continua da Getting Started with Electron Updater
Sezione intitolata “Continua da Getting Started with Electron Updater”Se stai utilizzando Inizia con Getting Started with Electron Updater per pianificare il lavoro del plugin nativo, connettilo con Utilizzare @capgo/electron-updater per la capacità nativa in Utilizzare @capgo/electron-updater, Directory dei plugin di Capgo per il flusso di lavoro del prodotto in Directory dei plugin di Capgo, Plugin di Capacitor sviluppati da Capgo per la dettaglio di implementazione in Plugin di Capacitor sviluppati da Capgo, Aggiungere o Aggiornare Plugin per la dettaglio di implementazione in Aggiungere o Aggiornare Plugin, e Alternative per Plugin Enterprise di Ionic per il flusso di lavoro del prodotto in Alternative per Plugin Enterprise di Ionic.