Files
certain/web/vite.config.js
T
GuidoandClaude Opus 5 175d9f50e0 feat: Sagen, wenn Oberflaeche und Server auseinanderlaufen
Ein "npm run build" allein startet den Dienst nicht neu. Die Oberflaeche
ruft dann Endpunkte auf, die es serverseitig noch gar nicht gibt - und das
sieht aus wie ein Fehler in der Funktion, nicht wie ein halbes Update.
Genau daran ging gerade eine Stunde Fehlersuche drauf: Die Aufstellung
eines Ausgaben-Anteils blieb leer, weil der Server den Endpunkt nicht
kannte.

Vite setzt den Commit beim Bauen ins Bundle, die Oberflaeche vergleicht
ihn beim Start mit dem, den der Server unter /api/version meldet. Weichen
sie ab, steht der Hinweis samt Kommando ueber jeder Seite. Kennt eine der
beiden Seiten ihren Stand nicht, schweigt der Hinweis - falscher Alarm
waere schlimmer als keiner.

Beide Richtungen im Browser geprueft: bei verschiedenen Staenden erscheint
er, bei gleichen nicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-30 15:28:05 +02:00

35 lines
1.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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,
},
},
},
});