46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
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,
|
||
},
|
||
},
|
||
},
|
||
};
|
||
});
|