Vite + Lit-Webkomponenten-Workflow
Geltungsbereich & Verzeichnisgrenze
- STRENGE GRENZE: Nur innerhalb von
frontend/arbeiten. Niemalsbackend/-Quellcode ändern. - Quelle der Wahrheit: Der Backend-API-Vertrag ist schreibgeschützt aus
../backend/target/generated/openapi/openapi.yaml.
Ausführungsschritte
Schritt 1: OpenAPI-Vertrag & Komponenten-Header synchronisieren (STOPP FÜR MENSCHLICHE ÜBERPRÜFUNG)
- Führen Sie
npm run sync-apiinfrontend/aus, umsrc/api/schema.d.tsaus der Backend-OpenAPI-Spezifikation neu zu generieren. - Erstellen oder aktualisieren Sie die Ziel-Lit
.ts-Komponentendateien mit NUR dem oberen Vertrags-Header (erste ~30 Zeilen):@customElement('...')- Typisierte
@property()-Deklarationen (die auf OpenAPI-generierte Typen verweisen, niemalsany). CustomEvent-Detail-Typdefinitionen für ausgelöste Ereignisse.declare global { interface HTMLElementTagNameMap { ... } }
- PAUSE: Wenn eine neue Ansicht erstellt oder Komponentenverträge geändert werden, lassen Sie den Benutzer den
@property()-Header überprüfen, bevor Sie schweres DOM/CSS schreiben. (Pause für reine CSS/visuelle Anpassungen überspringen).
Schritt 2: Blackbox-Implementierung
- Implementieren Sie
render()undstatic styles = cssinnerhalb der Lit-Komponente. - Kapselungsregeln:
- Eigenschaften nach unten, Ereignisse nach oben.
- Niemals
document.querySelectorverwenden oder dasshadowRooteiner anderen Komponente durchbrechen. - Niemals rohe
fetch()-Aufrufe mit untypisiertem JSON schreiben; den typisierten API-Client verwenden. - Jede Komponentendatei unter 250 Zeilen halten.
Schritt 3: Mechanische Überprüfung & statischer Bundle-Build
Führen Sie innerhalb von frontend/ aus und beheben Sie alle Fehler, bevor Sie die Fertigstellung melden:
npm run verify && npm run build