import { execSync } from "node:child_process"; import { fileURLToPath, URL } from "node:url"; import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; const backend = process.env.VITE_BACKEND ?? "http://127.0.0.1:8000"; /** Short commit hash baked into the bundle (e621 `_client` string). */ function gitHash(): string { const configured = process.env.GIT_HASH?.trim(); if (configured) return configured; try { return execSync("git rev-parse --short HEAD", { cwd: fileURLToPath(new URL(".", import.meta.url)), stdio: ["ignore", "pipe", "ignore"], }) .toString() .trim(); } catch { return "dev"; } } // https://vite.dev/config/ export default defineConfig({ plugins: [react(), tailwindcss()], define: { __GIT_HASH__: JSON.stringify(gitHash()), }, resolve: { alias: { "@": fileURLToPath(new URL("./src", import.meta.url)), }, }, server: { proxy: { "/api": backend, "/media": backend, "/admin": backend, }, }, });