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>
This commit is contained in:
@@ -1,12 +1,27 @@
|
||||
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: {
|
||||
|
||||
Reference in New Issue
Block a user