No description
Die Karte zeigte Kacheln und stand am richtigen Ort, zeichnete aber weder in der Trail-Uebersicht noch auf der Detailseite eine Linie. Das Hoehenprofil aus denselben Versionsdaten wurde dagegen gerendert. Ursache: MapLibre 6 liegt als drei Dateien vor (Haupteinstiegspunkt, shared, worker) und laedt den Worker zur Laufzeit ueber import.meta.url aus dem eigenen Verzeichnis nach. Vites Dependency-Optimierung buendelt jedoch nur den Haupteinstiegspunkt nach node_modules/.vite/deps — daneben liegt keine maplibre-gl-worker.mjs. Der Worker startet dadurch zwar und ist verbunden, sein Import laeuft aber ins Leere: Er antwortet auf keine Nachricht mehr. GeoJSON-Quellen bleiben deshalb dauerhaft im Ladezustand (isSourceLoaded false, keine Source-Features, _updatePromise loest nie auf), und es gibt nichts zu zeichnen. Rasterkacheln brauchen keinen Worker, deshalb erschien die Karte trotzdem und der Fehler sah nach fehlenden Daten aus. setWorkerUrl mit einem ?url-Import zeigt auf die echte Datei und umgeht das, ohne in Vites Optimierung einzugreifen. Ein optimizeDeps.exclude waere der naheliegendere Weg gewesen, bricht hier aber die Modulaufloesung von SvelteKit. Verifiziert: Linie erscheint in Uebersicht und Detailseite; die Daten waren durchgehend intakt (LineString, 225 Koordinaten). svelte-check ohne Fehler, alle 19 Tests bestehen, npm run build erfolgreich, und die Worker-Datei liegt als Asset im Produktionsbuild und wird vom Client-Bundle referenziert. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| backend | ||
| docs/superpowers | ||
| frontend | ||
| .gitignore | ||
| CLAUDE.md | ||
| README.md | ||
| UML_basic.png | ||
stammtisch-hersbruck.de
Zeitmessung und Verwaltung für Läufe des Stammtisch Hersbruck.
Das Repository enthält beide Teile der Anwendung:
| Verzeichnis | Inhalt |
|---|---|
frontend/ |
SvelteKit-5-Anwendung (Svelte 5 Runes, Tailwind 4) |
backend/ |
PocketBase-Instanz — Dockerfile, Schema-Migrationen |
Schnellstart
Frontend gegen die produktive Instanz:
cd frontend
cp .env.example .env # Werte eintragen
npm ci
npm run dev
Die App läuft dann auf http://stammtisch-hersbruck.de.localhost:31337
Backend lokal (optional — der Default zeigt auf die produktive Instanz):
cd backend
cp .env.example .env # Werte eintragen
docker compose up -d --build
Danach in frontend/.env PUBLIC_PB_URL=http://127.0.0.1:8090 setzen.
Details stehen in backend/README.md.
PocketBase
Produktiv: https://api.stammtisch-hersbruck.de
Welche Instanz das Frontend anspricht, entscheidet PUBLIC_PB_URL in
frontend/.env. Das Schema ist als Migration in backend/pb_migrations/
versioniert.