import { readFileSync } from 'node:fs' import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' const pkg = JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8')) as { version: string } export default defineConfig({ plugins: [react()], define: { __APP_VERSION__: JSON.stringify(pkg.version), }, resolve: { dedupe: ['react', 'react-dom'], }, server: { port: 5173, proxy: { '/api': { target: 'http://localhost:8989', changeOrigin: true, }, '/ws': { target: 'ws://localhost:8989', ws: true, }, }, }, build: { outDir: '../webroot', emptyOutDir: true, sourcemap: false, rollupOptions: { output: { manualChunks(id) { if (/node_modules[/\\](three|@react-three)/.test(id)) { return 'three'; } if (/node_modules[/\\]recharts/.test(id)) { return 'recharts'; } if (id.includes('node_modules')) { return 'vendor'; } }, }, }, }, })