Nxdom Framework

Nusantara eXtreme Development Object Model — dokumentasi resmi

PWA & Service Worker di desktop

Template Electron memuat NexaJS (SPA) yang sama dengan jalur web, tetapi bukan aplikasi terpasang lewat browser. Nonaktifkan lapisan PWA dan, umumnya, Service Worker di App.js.

Electron · App.js · NexaRoute

Ringkas: di proyek desktop set pwa.enabled: false dan serviceWorker.enabled: false. webWorker boleh tetap true — itu fetch HTTP di thread terpisah, bukan PWA.

Mengapa tidak mengaktifkan PWA?

PWA (Progressive Web App) ditujukan untuk browser: manifest, “Install app”, tampilan standalone, dan banner pembaruan saat Service Worker diganti. Di Electron, aplikasi sudah dijalankan sebagai jendela desktop (electron.exe); pembaruan versi mengikuti build installer (electron-builder), bukan alur install PWA di Chrome/Edge.

Fitur Web (browser) Electron (desktop)
manifest.webmanifest Diperlukan untuk “Pasang aplikasi” Tidak dipakai — tidak ada prompt install
pwa di App.js Meta manifest, theme-color, banner update SW Nonaktifkan (enabled: false)
serviceWorker Cache offline, navigasi fallback Umumnya nonaktifkan — update lewat paket desktop
webWorker Fetch/cache API di thread terpisah Boleh aktif — tidak sama dengan PWA

Penjelasan lapisan SPA vs PWA di web: SPA vs PWA.

Contoh App.js (template Electron)

serviceWorker: { enabled: false, scriptUrl: "/sw.js", scope: "/", backgroundSync: false, }, pwa: { enabled: false, manifestUrl: "/manifest.webmanifest", themeColor: "#CB2F2F", promptUpdate: false, },

Hanya pwa.enabled: false — cukup untuk apa?

Cukup untuk mematikan modul NexaPwa (initNexaPwa): tidak ada injeksi <link rel="manifest">, meta theme-color dari PWA, atau banner “Versi baru tersedia” dari watcher PWA.

Tidak mematikan Service Worker — blok serviceWorker terdaftar terpisah lewat initNexaServiceWorker. Jika hanya pwa yang false tetapi serviceWorker.enabled: true, SW tetap bisa terpasang di Chromium dalam jendela Electron.

Service Worker di desktop

Aktifkan SW hanya jika Anda sengaja ingin cache offline / background sync di dalam shell Electron. Untuk kebanyakan proyek desktop, set serviceWorker.enabled: false agar perilaku cache dan pembaruan tidak bentrok dengan ekspektasi “satu versi = satu installer”.

Kesalahan umum

  • Menyalin App.js dari proyek web dengan pwa.enabled: true — tidak merusak Electron, tetapi manifest dan banner PWA tidak relevan dan bisa membingungkan saat debug.
  • Menganggap npm start dev sama dengan mode development — gunakan npm run dev (lihat Perintah npm).
  • Menghapus manifest.webmanifest dari folder proyek — file boleh tetap ada untuk kesamaan struktur dengan template web; yang penting adalah konfigurasi pwa / serviceWorker di App.js.

Proyek web tetap memakai PWA

Satu codebase NexaJS bisa dipakai di dua jalur: deploy web (PHP/Node) dengan PWA aktif, dan fork/template Electron dengan PWA/SW dimatikan. Jangan matikan PWA di proyek web hanya karena ada versi Electron — sesuaikan per target runtime.

← Konfigurasi URL & build · PWA di App.js (web)