Langsung ke konten utama
@capgo/electron-updater Update Open source

Electron Updater Plugin Electron

OTA live updates untuk aplikasi Electron dengan surface API yang sama seperti pada capacitor-updater

Instal

bun add @capgo/electron-updater
npm, pnpm atau yarn
  • npm install @capgo/electron-updater
  • pnpm add @capgo/electron-updater
  • yarn add @capgo/electron-updater

Panduan

Cara menggunakan Electron Updater di Electron

Menggunakan @capgo/electron-updater

@capgo/electron-updater memberikan model live-update Capgo yang sama dengan @capgo/capacitor-updater. Anda menginisialisasinya di main process, ekspos renderer bridge melalui preload, dan panggil notifyAppReady() pada setiap peluncuran agar rollback protection tahu bundle-nya sehat.

Instalasi

bun add @capgo/electron-updater

Setup main process

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

Bridge preload

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

exposeUpdaterAPI();

Penggunaan renderer

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

Dengarkan event update

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

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

Deploy bundle baru

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

Saran praktis

  • Selalu panggil notifyAppReady() di awal renderer agar rollback protection berfungsi sebagaimana mestinya.
  • Jaga path bawaan tetap stabil dan biarkan updater menentukan apakah akan memuat bundle bawaan atau yang sudah di-download.
  • Gunakan kembali channel Capgo dan model rollout yang sama yang sudah Anda pakai di mobile jika aplikasi Electron Anda berbagi release pipeline backend.

Lanjutkan dari Menggunakan @capgo/electron-updater

Jika Anda menggunakan Menggunakan @capgo/electron-updater untuk merencanakan pekerjaan plugin native, hubungkan dengan @capgo/electron-updater untuk detail implementasi di @capgo/electron-updater, Memulai dengan Electron Updater untuk detail implementasi di panduan Memulai dengan Electron Updater, Direktori Plugin Capgo untuk alur kerja produk di Direktori Plugin Capgo, Plugin Capacitor oleh Capgo untuk detail implementasi di Plugin Capacitor oleh Capgo, dan Menambahkan atau Memperbarui Plugin untuk detail implementasi di bagian Menambahkan atau Memperbarui Plugin.

FAQ

FAQ plugin Electron Updater

Bagaimana cara install plugin Electron Updater di aplikasi Electron?

Jalankan "bun add @capgo/electron-updater" (atau "npm install @capgo/electron-updater"), lalu ikuti langkah setup Electron di panduan dan README GitHub.

Apakah @capgo/electron-updater bisa digunakan dengan React, Vue, dan Angular?

Ya. Electron Updater adalah package Electron, jadi bisa digunakan dengan framework web apa pun yang berjalan di dalam Electron, seperti React, Vue, Angular, Svelte, maupun JavaScript biasa.

Apakah @capgo/electron-updater gratis dan open source?

Ya. Source code code tersedia secara publik di GitHub pada https://github.com/Cap-go/electron-updater/ dan package ini gratis untuk diinstall dari npm. Bug reports dan pull requests sangat kami terima.

Rilis perubahan Electron Updater tanpa menunggu review aplikasi

Setelah plugin ada di build store Anda, live updates Capgo akan mengirim perubahan JavaScript, HTML, dan CSS ke pengguna dalam hitungan menit.

Mulai dengan Capgo