import { defineConfig, loadEnv } from "vite"; import react from "@vitejs/plugin-react"; import { viteStaticCopy } from "vite-plugin-static-copy"; import tailwindcss from "@tailwindcss/vite"; export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), ""); const port = env.VITE_SERVER_PORT || 8080; return { plugins: [ react(), tailwindcss(), viteStaticCopy({ targets: [ { src: "public/analytics.js", dest: "assets/", }, { src: "public/openapi.json", dest: "assets/", }, { src: "public/logo.svg", dest: "assets/", }, ], }), ], build: { assetsDir: "./assets/", outDir: "../pkg/frontend/dist", emptyOutDir: true, rollupOptions: { output: { manualChunks: { react: ["react", "react-dom", "react-router"], vendors: ["luxon", "highlight.js", "diff2html", "swagger-ui-react"], }, }, }, }, server: { proxy: { "^/api/.*": `http://127.0.0.1:${port}`, "^/status*": `http://127.0.0.1:${port}`, "^/diff*": `http://127.0.0.1:${port}`, "^/static*": `http://127.0.0.1:${port}`, }, }, }; });