Guida
Come utilizzare Electron Updater in Electron
Utilizzando @capgo/electron-updater
@capgo/electron-updater gives Electron apps the same Capgo live-update model as @capgo/capacitor-updaterInizializzalo nel processo principale, esponi il ponte del renderer attraverso preload e chiama notifyAppReady() su ogni avvio affinché la protezione del rollback sappia che il bundle è sano.
Installation
bun add @capgo/electron-updater
Ponte di preload
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());
});
Utilizzo del renderer
import { exposeUpdaterAPI } from '@capgo/electron-updater/preload';
exposeUpdaterAPI();
Ascolta gli eventi di aggiornamento
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 });
}
Distribuisci un nuovo bundle
updater.addListener('download', ({ percent }) => {
console.log('Download progress', percent);
});
updater.addListener('updateFailed', ({ bundle }) => {
console.error('Update failed', bundle.version);
});
Consigli pratici
bun run build
bunx @capgo/cli@latest bundle upload --channel=production
Chiamalo sempre
- Installation
notifyAppReady()in anticipo nel renderer affinché la protezione del rollback funzioni come previsto. - Mantieni stabile la cartella costruita e lascia che l'aggiornatore decida se caricare il bundle spedito o uno scaricato.
- Ripeti lo stesso canale e il modello di rilascio Capgo che già utilizzi su mobile quando la tua app Electron condivide una pipeline di rilascio backend.
Continua da Utilizzo di @capgo/electron-updater
Se stai utilizzando Utilizzo di @capgo/electron-updater per pianificare il lavoro di plugin nativo, connettilo con @capgo/aggiornamento-elettronico per il dettaglio di implementazione in @capgo/electron-updater Iniziare con l'aggiornatore di Electron per il dettaglio di implementazione in Iniziare con l'aggiornatore di Electron Capgo Directory dei plugin per il workflow del prodotto nella cartella dei plugin Capgo Capacitor Plugins per Capgo per i dettagli di implementazione in Capacitor Plugins per Capgo, e Aggiungere o aggiornare i plugin per i dettagli di implementazione in Aggiungere o aggiornare i plugin.