Seiten
Inhalt
Lokaler Entwicklungsworkflow
Dieser Guide beschreibt den empfohlenen Workflow für die Entwicklung im xPulse-Ecosystem.
1. Voraussetzungen
- Node.js (v16+)
- Das Monorepo ist ausgecheckt.
- Wir nutzen das
@xpulse/devKit für die Synchronisation und Orchestrierung.
2. Der Sync-Mechanismus (Dev-Kit)
Änderungen in components/* müssen in die node_modules der Test-Apps gespiegelt werden. Dies übernimmt das @xpulse/dev Paket automatisch.
Automatischer Sync & Watch
Wenn du eine App über das Dev-Kit startest, werden alle Komponenten automatisch überwacht und bei Änderungen synchronisiert:
| cd dev-apps/meine-app |
| npm run dev |
Dies führt intern npx xpulse dev:start aus, was:
- Den initialen Sync aller Komponenten durchführt.
- Einen Watcher auf
components/startet. - Die App im Development-Modus mit SSE-Live-Reload startet.
3. Development Modus (Live-Reload)
Wenn die App mit NODE_ENV=development gestartet wird, aktiviert @xpulse/app automatisch zusätzliche Features:
- Template-Cache Clearing: Bei jedem Neustart wird der Cache von
@xpulse/templategeleert (über das Dev-Kit gesteuert). - Watcher: Überwacht
src/,xpulse.jsonundsrc/templates/(Node.js--watch) sowie das Framework (dev:start). - SSE-Live-Reload:
- Der Server öffnet einen SSE-Endpoint
/xpulse-watch. - In jede HTML-Antwort wird automatisch ein kleines Script injiziert.
- Sobald der Server neu startet (durch den Watcher), erkennt der Browser den Verbindungsabbruch und lädt die Seite automatisch neu, sobald der Server wieder erreichbar ist.
- Der Server öffnet einen SSE-Endpoint
Starten im Dev-Modus
| cd dev-apps/meine-app |
| # Nutzt das in der package.json definierte 'dev' script (via @xpulse/dev) |
| npm run dev |
Oder manuell:
| NODE_ENV=development node --watch src --watch xpulse.json --watch src/templates src/index.js |
4. Workflow-Beispiel: Eine Komponente ändern
- Ändere Code in
components/xpulse-http/src/server.js. - Das Dev-Kit (
dev:start) erkennt die Änderung sofort. - Die Datei wird nach
dev-apps/meine-app/node_modules/@xpulse/http/src/server.jskopiert. - Der App-Watcher bemerkt den Dateiwandel in
node_modules(da das Dev-Kit dies triggert) und startet die App neu. - Der Browser lädt via SSE automatisch neu.
5. Tipps
- Logs: Nutze
DEBUG=truefür detailliertere Ausgaben beim Bootstrapping. - Cache: Falls Templates nicht aktualisiert werden, prüfe ob
NODE_ENV=developmentgesetzt ist.