import { execSync } from "node:child_process"; import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; // Der Commit, aus dem dieses Bundle stammt. Die Oberflaeche vergleicht ihn mit // dem, den der Server meldet – laufen beide auseinander, wurde gebaut, aber der // Dienst nicht neu gestartet. Das kostete schon mehrfach eine halbe Stunde // Fehlersuche an einer Funktion, die es serverseitig noch gar nicht gab. function commit() { try { return execSync("git rev-parse --short HEAD", { encoding: "utf8" }).trim(); } catch { return ""; // Kein Git zur Hand – dann wird nichts verglichen. } } // Im Dev-Modus wird /api an das lokale Backend weitergeleitet. Anders als in der // Vorlage wird der /api-Präfix NICHT entfernt – das Backend bedient die Routen // bewusst unter /api/... (ein Prozess liefert API und SPA gemeinsam aus). // In Produktion liefert derselbe FastAPI-Prozess das gebaute Frontend mit aus. export default defineConfig({ plugins: [react()], define: { __APP_SHA__: JSON.stringify(commit()) }, server: { port: 5173, proxy: { "/api": { target: "http://localhost:8000", changeOrigin: true, }, }, }, });