import path from 'node:path'; import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import tailwindcss from '@tailwindcss/vite'; // Vite config for the React client. // // Build output → ../public/app/ so Express can serve it as a static // bundle. While migration is in-flight, the old vanilla JS still lives // at /, and the React tree answers /app/*. // // Dev server proxies /api to the backend running on localhost:3000 // (or wherever the backend is) so React dev works against real data. // // @shared alias resolves to the repo-root shared/ directory — the // typed wire-protocol + Zod schemas imported by server and client alike. export default defineConfig({ plugins: [react(), tailwindcss()], resolve: { alias: { '@': path.resolve(__dirname, './src'), '@shared': path.resolve(__dirname, '../shared'), }, }, server: { proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true }, }, }, build: { outDir: path.resolve(__dirname, '../public/app'), emptyOutDir: true, assetsDir: 'assets', }, base: '/app/', });