import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import { fileURLToPath } from 'node:url' import path from 'node:path' import fs from 'node:fs' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const buildTime = new Date().getTime() export default defineConfig({ define: { __BUILD_TIME__: buildTime, }, // Si existe el .env en la raíz del repo (desarrollo local), lo usamos. // En Docker, las variables vienen por el sistema (ARG/ENV). envDir: fs.existsSync(path.resolve(__dirname, '../../.env')) ? '../../' : undefined, plugins: [ react(), { name: 'generate-version', writeBundle() { const version = { buildTime }; fs.writeFileSync(path.resolve(__dirname, 'dist/version.json'), JSON.stringify(version)); } } ], test: { environment: 'jsdom', setupFiles: './src/test/setup.ts', restoreMocks: true, clearMocks: true, }, resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, server: { port: 3000, proxy: { '/api': { target: 'http://127.0.0.1:8000', changeOrigin: true, ws: true, configure: (proxy, _options) => { proxy.on('error', (err, _req, _res) => { // Silenciar errores comunes de reconexión durante el desarrollo if (err.message.includes('ECONNREFUSED') || err.message.includes('ECONNABORTED')) { return; } console.log('proxy error', err); }); proxy.on('proxyReq', (_proxyReq, _req, _res) => { // Loguear solo si es necesario para debug }); proxy.on('proxyRes', (_proxyRes, _req, _res) => { // Loguear solo si es necesario para debug }); }, }, }, }, })