import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { execSync } from "child_process"; import { readFileSync } from "fs"; import { resolve } from "path"; function getGitCommit(): string { // In Docker builds, VITE_GIT_COMMIT is set via ENV from the build ARG if (process.env.VITE_GIT_COMMIT) { return process.env.VITE_GIT_COMMIT; } // Local dev: try git try { return execSync("git rev-parse --short HEAD", { encoding: "utf-8" }).trim(); } catch { return "dev"; } } function getAppVersion(): string { try { const pkg = JSON.parse( readFileSync(resolve(__dirname, "package.json"), "utf-8"), ); return pkg.version ?? "0.0.0"; } catch { return "0.0.0"; } } export default defineConfig({ plugins: [react()], define: { __APP_VERSION__: JSON.stringify(getAppVersion()), __BUILD_DATE__: JSON.stringify(new Date().toISOString()), __GIT_COMMIT__: JSON.stringify(getGitCommit()), }, server: { proxy: { "/api": { target: "http://localhost:8001", changeOrigin: true, }, }, }, });