From 4b172081b95c6f6af94edb01be01d967247c18d0 Mon Sep 17 00:00:00 2001 From: Gerd Date: Thu, 3 Sep 2026 16:53:46 +0200 Subject: [PATCH] client-build Skill und AGENTS.md: generierte Dateien nicht beachten MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neuer Skill .vibe/skills/client-build: automatisiert tsc + rollup Build nach TypeScript-Änderungen unter Client/. AGENTS.md ergänzt: Client/tsout/ und NGINX_Server/html/static/*.js als generierte Dateien markiert, nicht bei Codeanalyse berücksichtigen. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe --- .vibe/skills/client-build/SKILL.md | 54 ++++++++++++++++++++++++++++++ AGENTS.md | 3 ++ 2 files changed, 57 insertions(+) create mode 100644 .vibe/skills/client-build/SKILL.md diff --git a/.vibe/skills/client-build/SKILL.md b/.vibe/skills/client-build/SKILL.md new file mode 100644 index 0000000..ae6f3bb --- /dev/null +++ b/.vibe/skills/client-build/SKILL.md @@ -0,0 +1,54 @@ +--- +name: client-build +description: Load this skill after modifying TypeScript files under Client/ to compile and bundle the frontend. Runs tsc and rollup to produce the deployable JS bundle in NGINX_Server/html/static/. +--- + +# Client Build + +Führt den TypeScript- und Rollup-Build für die Client-Seite aus. Wird benötigt, +nachdem `.ts`-Dateien unter `Client/` geändert wurden, damit die kompilierten +Bundles in `NGINX_Server/html/static/` aktualisiert werden. + +## Build-Schritte + +1. **TypeScript kompilieren** — kompiliert alle `.ts`-Dateien nach `Client/tsout/`: + ```bash + cd /usr/opt/pythonapp/Client && npx tsc + ``` + Bei Fehlern: Ausgabe lesen, Fehler beheben, erneut ausführen. + +2. **Rollup bundle** — bündelt `tsout/index.js` zu den statischen JS-Dateien: + ```bash + cd /usr/opt/pythonapp/Client && npx rollup -c + ``` + `rollup -c` liest die Konfiguration aus `rollup.config.mjs`. Es fasst alle + kompilierten `.js`-Dateien plus Mithril zu einem selbstausführenden Bundle + (Format: iife) zusammen und schreibt zwei Dateien nach + `NGINX_Server/html/static/`: + - `kbp_crm_00.00.01.js` — unminifiziert (für Debug) + - `kbp_crm_00.00.01.min.js` — minifiziert via terser (für Produktion) + + Die Dateinamen setzen sich aus `projectname` und `version` aus `config.ini` + zusammen (wird in `rollup.config.mjs` via `inireader.mjs` gelesen). + +## Beide Schritte in einem Aufruf + +```bash +cd /usr/opt/pythonapp/Client && npx tsc && npx rollup -c +``` + +## Wann ausführen + +- Nach jeder Änderung an `.ts`-Dateien unter `Client/` (Modelle, Komponenten, + Widgets, index.ts) +- Vor einem Commit, der Client-Änderungen enthält, damit die deploybaren + Bundles aktuell sind +- Nicht nötig bei reinen Server-Änderungen (`App_Server/`) + +## Fehlerbehandlung + +- **tsc-Fehler:** TypeScript-Compiler-Fehler müssen vor dem Rollup-Schritt + behoben werden — Rollup kann nicht ohne erfolgreiche Kompilierung bündeln. +- **rollup-Fehler:** Meist fehlende Imports oder Pfadprobleme. Die + `rollup.config.mjs` erwartet `tsout/index.js` als Input — sicherstellen, + dass tsc erfolgreich war. diff --git a/AGENTS.md b/AGENTS.md index e8cdc6c..75e460b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -48,3 +48,6 @@ export const Select: m.ClosureComponent = () => { ``` ## Vorgaben für die Server-seitige Entwicklung unter Python + +## Generierte Dateien nicht beachten +Das Verzeichnis `Client/tsout/` enthält die JavaScript-Ausgabe der TypeScript-Kompilation und wird durch den Build-Prozess (tsc + rollup) erzeugt. Diese Dateien sind nicht manuell zu bearbeiten und brauchen bei der Codeanalyse nicht berücksichtigt zu werden. Ebenso sind die JavaScript-Dateien in `NGINX_Server/html/static/` (z.B. `kbp_crm_00.00.01.js`) die Ausgabe des Rollup-Builds und nicht zu untersuchen.