Das @docmd/plugin-pwa-Plugin verwandelt Ihre Dokumentationsseite in eine installierbare Progressive Web Application (PWA). Es generiert ein W3C Web Application Manifest (manifest.webmanifest) und registriert einen Service Worker für Offline-Caching und die Installation auf mobilen Plattformen.
Konfigurationsoptionen
Konfigurieren Sie PWA-Eigenschaften in docmd.config.json:
| Option | Typ | Standard | Technische Beschreibung |
|---|---|---|---|
enabled |
boolean |
true |
Aktivieren oder deaktivieren Sie die PWA-Manifest- und Service-Worker-Kompilierung. |
themeColor |
string |
'#1e293b' |
Farbe des Browser-UI-Chrome-Headers. |
bgColor |
string |
'#ffffff' |
Hintergrundfarbe des Installations-Splash-Screens. |
logo |
string |
null |
Pfad zum App-Icon (relativ zum Dokumentationsquellstamm). |
Globales Konfigurationsbeispiel
{
"plugins": {
"pwa": {
"themeColor": "#1e293b",
"bgColor": "#ffffff",
"logo": "assets/app-icon.png"
}
}
}
Hauptfunktionen
- Offline Service Worker: Implementiert eine Stale-While-Revalidate-Caching-Strategie. Seiten werden sofort aus dem lokalen Cache geladen, während der Netzwerkstatus im Hintergrund überprüft wird.
- Home-Screen-Installation: Gibt gültige Manifest-Metadaten aus, mit denen Benutzer die Dokumentationsseite auf iOS, Android, macOS und Windows anheften können.
- Asset-Skalierung: Generiert automatisch die erforderlichen PWA-Icon-Größen (192x192, 512x512) aus dem primären Site-Branding.
Priorität der Icon-Auflösung
Das PWA-Plugin wertet Icon-Pfade in folgender Reihenfolge von oben nach unten aus:
plugins.pwa.icons— Explizites Icon-Array, das in der Konfiguration definiert ist.plugins.pwa.logo— Plugin-spezifischer Icon-Pfad.config.logo— Globaler Site-Logo-Pfad.config.favicon— Globaler Site-Favicon-Pfad.
Die Service-Worker-Registrierung ist während der lokalen Entwicklung (npx @docmd/core dev) deaktiviert, um zu verhindern, dass zwischengespeicherte Assets Live-Bearbeitungen beeinträchtigen. Um PWA-Funktionen zu testen, bauen Sie die Seite (npx @docmd/core build) und stellen Sie das Ausgabeverzeichnis (site/) über HTTPS oder localhost bereit.