# Rippy v5 bauen — Anleitung > Gilt für den Ordner `rippy-windows/`. Grundlage: `KONZEPT-WINDOWS.md`, > die Messungen dazu liegen in `beweise/`. ## Voraussetzungen | Werkzeug | Version | Anmerkung | |----------|---------|-----------| | Node | 24 (LTS) | dieselbe Linie wie Electrons eingebautes Node (24.18) | | npm | 11 | kommt mit Node 24 | | Windows | 10 (ab 1809) / 11, x64 | zum Entwickeln und für den Smoke-Beweis; Bau/Tests laufen auch auf Linux (CI) | ## Einrichten — zwei Schritte, nicht einer ``` npm install node node_modules/electron/install.js ``` **Die zweite Zeile ist kein Versehen** (gemessen 30.08.2026, siehe `beweise/README.md` und KONZEPT § 3.5): npm 11 blockiert Install-Skripte fremder Pakete. `koffi` übersteht das, weil es vorgebaute Binärdateien mitbringt — **Electron nicht**: Sein Install-Skript lädt die eigentliche Programmdatei herunter. Wird es geblockt, liegt nach `npm install` ein Paket **ohne `dist/electron.exe`** da, und nichts startet. Der Nachholer ist auch als npm-Skript hinterlegt: `npm run werkzeug:electron`. ## Die Läufe | Befehl | Was er tut | |--------|------------| | `npm run dev` | Entwicklung: baut, startet Electron, lädt das Fenster vom Vite-Server | | `npm run build` | Typprüfung (beide tsconfig) + Bau nach `out/` | | `npm test` | Vitest: Wächter-Tests (§ 4.3), Datenbank, Nachrichten-Schema | | `npm run smoke` | **Der W-0-Beweis:** baut, startet das echte Programm mit `--smoke`, prüft Fenster + Kern + Datenbank + Leine + Ping/Pong über den MessagePort und endet mit Code 0 (grün) oder 2. `RIPPY_SMOKE_BILD=` legt zusätzlich einen Screenshot ab. Läuft nur unter Windows (Electron-Binary + koffi). | Der Smoke-Lauf benutzt ein Wegwerf-Profil unter `%TEMP%\rippy-smoke` — er fasst die echten Einstellungen nicht an. ## Was die CI-Ampel prüft (`.gitea/workflows/ci.yml`) Die Ampel läuft auf Linux und führt hier `npm ci`, `npm run build` und `npm test` aus. Deshalb gilt für Tests: **nichts importieren, was koffi, Win32 oder das Electron-Binary braucht.** Die Wächter-Tests LESEN Quelltext nur; die Datenbank-Tests laufen, weil `node:sqlite` im System-Node genauso vorhanden ist wie in Electrons Node (§ 3.4). Was zwingend Windows braucht (Smoke, später die Laufwerks-Messungen), wird lokal ausgeführt und im `SAVEPOINT.md` mit Ausgabe belegt. ## Festgelegte Versionen und warum - **Electron 44.0.0** — exakt die am 30.08.2026 gemessene Version (KONZEPT § 3.1/§ 3.4). Sprünge nach der Pflege-Regel § 6.8: bei jedem Release prüfen, ob eine neue Linie ansteht. - **TypeScript 5.9.3, fest gepinnt** — bewusst NICHT die neue Go-Implementierung (7.x, „tsgo", seit 2026 `latest` auf npm): Für die Ampel zählt ein Typprüfer, dessen Verhalten die restliche Werkzeugkette (Vitest 4, electron-vite 5) breit getestet hat. Der Umstieg auf 7.x ist eine bewusste Entscheidung für später, kein Nebeneffekt eines `npm update`. - **Vite 7** — der gemeinsame Nenner von electron-vite 5 (verträgt 5–7) und Vitest 4 (verträgt 6–8), am 30.08.2026 per `npm view` ermittelt. - **koffi** ist die einzige Laufzeit-Abhängigkeit (`dependencies`) — sie wird nicht gebündelt, sondern zur Laufzeit aus `node_modules` geladen (natives Modul). Alles andere ist Bauzeit (`devDependencies`).