import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import { VitePWA } from 'vite-plugin-pwa' 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)); } }, VitePWA({ registerType: 'autoUpdate', injectRegister: 'auto', includeAssets: ['favicon.ico', 'apple-touch-icon.png', 'mask-icon.svg'], manifest: { name: 'OmniField', short_name: 'OmniField', description: 'OmniOil Field Operations PWA', theme_color: '#0a0a0a', icons: [ { src: 'pwa-192x192.png', sizes: '192x192', type: 'image/png' }, { src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png' } ] } }) ], test: { environment: 'jsdom', setupFiles: './src/test/setup.ts', restoreMocks: true, clearMocks: true, }, resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, server: { port: 5173, proxy: { '/api': { target: 'http://localhost:8000', changeOrigin: true, }, }, }, })