가이드
Electron 업데이터에 대한 튜토리얼
Electron 앱에 @capgo/electron-updater를 사용하면 capgo 실시간 업데이트 모델과 동일한
@capgo/electron-updater gives Electron apps the same Capgo live-update model as @capgo/capacitor-updatermain process에서 초기화하고, preload를 통해 렌더러 브리지를 노출하고, 호출 notifyAppReady() 각 런칭 시 롤백 보호를 위해 보관된 패키지가 정상인지 알 수 있도록 하세요.
설치
bun add @capgo/electron-updater
메인 프로세스 설정
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());
});
프리로드 브리지
import { exposeUpdaterAPI } from '@capgo/electron-updater/preload';
exposeUpdaterAPI();
렌더러 사용
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 });
}
업데이트 이벤트를 듣기
updater.addListener('download', ({ percent }) => {
console.log('Download progress', percent);
});
updater.addListener('updateFailed', ({ bundle }) => {
console.error('Update failed', bundle.version);
});
새로운 패키지를 배포
bun run build
bunx @capgo/cli@latest bundle upload --channel=production
실용적인 조언
- 언제나 렌더러에서 롤백 보호가 작동하도록 하려면 __CAPGO_KEEP_0__ 채널과 롤아웃 모델을 재사용하세요.
notifyAppReady()빌드된 내장 경로를 안정적으로 유지하고 업데이트기가 shipped 패키지나 다운로드한 패키지를 로드할지 결정하도록 하세요. - Electron 앱이 백엔드 릴리즈 파이프라인을 공유할 때 모바일에서 이미 사용 중인 __CAPGO_KEEP_0__ 채널과 롤아웃 모델을 재사용하세요.
- Electron 앱이 백엔드 릴리즈 파이프라인을 공유할 때 모바일에서 이미 사용 중인 Capgo 채널과 롤아웃 모델을 재사용하세요.
Using @capgo/electron-updater
만약에 사용 중이라면 Using @capgo/electron-updater 자연스러운 플러그인 작업을 계획하려면 @capgo/electron-updater @capgo/electron-updater의 구현 세부 사항 Electron Updater를 사용하여 시작하는 방법 Electron Updater를 사용하여 시작하는 방법의 구현 세부 사항 Capgo 플러그인 디렉토리 Capgo 플러그인 디렉토리의 제품 워크플로우 Capacitor Capgo에 의해 Capacitor Capgo에 의해 구현 세부 사항 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트 구현 세부 사항에 대한