import fs from 'fs'; import tailwindcss from '@tailwindcss/vite'; import react from '@vitejs/plugin-react'; import path from 'path'; import {defineConfig, loadEnv} from 'vite'; export default defineConfig(({mode}) => { const env = loadEnv(mode, '.', ''); const certPath = path.resolve(__dirname, '.cert/dev.crt'); const keyPath = path.resolve(__dirname, '.cert/dev.key'); const enableHttps = String(env.VITE_DEV_HTTPS || '').trim().toLowerCase() === 'true'; const https = enableHttps && fs.existsSync(certPath) && fs.existsSync(keyPath) ? { cert: fs.readFileSync(certPath), key: fs.readFileSync(keyPath), } : undefined; return { plugins: [react(), tailwindcss()], define: { 'process.env.GEMINI_API_KEY': JSON.stringify(env.GEMINI_API_KEY), }, resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, server: { https, // HMR is disabled in AI Studio via DISABLE_HMR env var. // Do not modify—file watching is disabled to prevent flickering during agent edits. hmr: process.env.DISABLE_HMR !== 'true', proxy: { '/api': { target: 'http://localhost:8080', rewrite: (requestPath) => requestPath.startsWith('/api/sys') ? requestPath.replace(/^\/api\/sys/, '/sys') : requestPath, }, }, }, }; });