import { defineConfig, loadEnv } from 'vite' import vue from '@vitejs/plugin-vue' export default defineConfig(({ mode }) => { // 加载环境变量 const env = loadEnv(mode, process.cwd(), '') // 获取后端服务地址 const backendHost = env.VITE_BACKEND_HOST || 'localhost' const backendPort = env.VITE_BACKEND_PORT || '8888' const backendUrl = `http://${backendHost}:${backendPort}` return { plugins: [vue()], server: { host: '0.0.0.0', port: 3000, proxy: { '/api': { target: backendUrl, changeOrigin: true, secure: false, // 开发环境下打印代理信息 configure: (proxy, _options) => { proxy.on('error', (err, _req, _res) => { console.log('proxy error', err) }) proxy.on('proxyReq', (proxyReq, req, _res) => { console.log(`Proxying ${req.method} ${req.url} to ${backendUrl}`) }) } } } }, build: { outDir: 'dist', assetsDir: 'assets' }, // 环境变量配置 define: { __APP_VERSION__: JSON.stringify(env.VITE_APP_VERSION || '1.0.0'), __BUILD_TIME__: JSON.stringify(new Date().toISOString()) } } })