Lompat ke Konten Utama
@capgo/pembaruan-elektron Pembaruan Sumber Terbuka

Pembaruan Elektron Plugin Electron

OTA live updates for Electron apps with the same API surface as capacitor-updater

Install

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

Bagaimana menggunakan Electron Updater di Electron

Menggunakan @capgo/electron-updater

@capgo/electron-updater memberikan aplikasi Electron model pembaruan hidup yang sama seperti Capgo @capgo/capacitor-updater Anda menginisialisasinya di proses utama, mengekspos jembatan renderer melalui preload, dan memanggil notifyAppReady() on setiap peluncuran sehingga perlindungan rollback tahu bundel sehat.

Instalasi

bun add @capgo/electron-updater

Pengaturan proses utama

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

Jembatan 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 pembaruan

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() Awal dalam renderer sehingga perlindungan rollback bekerja sebagaimana yang diharapkan.
  • Tetapkan jalur yang dibangun secara stabil dan biarkan pembaruan memutuskan apakah harus memuat bundle yang dikirim atau yang didownload.
  • Gunakan saluran dan model peluncuran yang sama dengan Capgo yang sudah digunakan di mobile ketika aplikasi Electron Anda berbagi jalur rilis backend.

Teruskan dari Menggunakan @capgo/electron-updater

Jika Anda menggunakan Menggunakan @capgo/electron-updater untuk merencanakan pekerjaan plugin native, hubungkannya dengan @capgo/electron-updater untuk detail implementasi di @capgo/electron-updater, Mulai Menggunakan Electron Updater untuk detail implementasi di Mulai Menggunakan Electron Updater, Daftar Direktori Plugin @Capgo untuk alur kerja produk di Daftar Direktori Plugin @Capgo, Plugin @Capacitor oleh @Capgo untuk detail implementasi di Plugin @Capacitor oleh @Capgo, dan Menambahkan atau Mengupdate Plugin untuk detail implementasi di Menambahkan atau Mengupdate Plugin.

FAQ

FAQ Plugin Pembaruan Electron

Bagaimana cara menginstal plugin Pembaruan Electron di aplikasi Electron?

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

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

Ya. Pembaruan Electron adalah paket Electron, sehingga berfungsi dengan semua framework web yang berjalan di dalam Electron, React, Vue, Angular, Svelte, dan JavaScript biasa.

Apakah @capgo/electron-updater gratis dan terbuka sumber?

Ya. Sumber code tersedia secara publik di GitHub di https://github.com/Cap-go/electron-updater/ dan paketnya dapat diinstal secara gratis dari npm. Laporan bug dan permintaan pull diterima.

Kirimkan perubahan Pembaruan Electron tanpa menunggu tinjauan aplikasi

Setelah plugin masuk dalam pembangunan toko Anda, pembaruan Capgo dapat memperbarui perubahan JavaScript, HTML, dan CSS ke pengguna dalam menit.

Mulai dengan Capgo