import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' import tailwindcss from '@tailwindcss/vite' // https://vite.dev/config/ export default defineConfig(({ mode }) => ({ plugins: [ vue(), vueDevTools(), tailwindcss(), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, }, server: { proxy: { '/api': { target: 'http://127.0.0.1:8000/api/v1', changeOrigin: true, secure: false, ws: true, rewrite: (path) => path.replace(/^\/api/, ''), // Frontend calls /api/parks/ -> rewrites to /parks/ -> target adds /api/v1 -> /api/v1/parks/ } } }, build: { outDir: 'dist', sourcemap: mode === 'development', minify: mode === 'production', rollupOptions: { output: { manualChunks(id) { if (id.includes('node_modules')) { if (id.includes('vue') || id.includes('pinia') || id.includes('vue-router')) { return 'vue-vendor'; } if (id.includes('lucide-vue-next')) { return 'ui-vendor'; } return 'vendor'; } } } } } }))