import process from 'node:process'; import { URL, fileURLToPath } from 'node:url'; import { defineConfig, loadEnv } from 'vite'; import { setupVitePlugins } from './build/plugins'; import { createViteProxy, getBuildTime } from './build/config'; export default defineConfig(configEnv => { const viteEnv = loadEnv(configEnv.mode, process.cwd()) as unknown as Env.ImportMeta; const buildTime = getBuildTime(); const enableProxy = configEnv.command === 'serve' && !configEnv.isPreview; return { base: viteEnv.VITE_BASE_URL, resolve: { alias: { '~': fileURLToPath(new URL('./', import.meta.url)), '@': fileURLToPath(new URL('./src', import.meta.url)) } }, css: { preprocessorOptions: { scss: { api: 'modern-compiler', additionalData: `@use "@/styles/scss/global.scss" as *;` } } }, plugins: setupVitePlugins(viteEnv, buildTime), define: { BUILD_TIME: JSON.stringify(buildTime) }, server: { host: '0.0.0.0', port: 9527, open: true, proxy: { ...createViteProxy(viteEnv, enableProxy), // ai-server OpenApi:默认走线上映射域名(https://mocaiapi.djxinxi.net → 192.168.0.230:8085/proxy-ai/ → ai-server:12333, // 网关超时已调至 900s,长耗时接口可用;域名根路径已含 /proxy-ai 映射,故此处剥掉前缀)。 // 本地起 docker ai-server 联调时,用环境变量覆盖:AI_SERVER_URL=http://127.0.0.1:12333 pnpm dev '/proxy-ai': { target: process.env.AI_SERVER_URL || 'https://mocaiapi.djxinxi.net', changeOrigin: true, rewrite: p => p.replace(/^\/proxy-ai/, '') } } }, preview: { port: 9725 }, build: { reportCompressedSize: false, sourcemap: viteEnv.VITE_SOURCE_MAP === 'Y', commonjsOptions: { ignoreTryCatch: false } } }; });