import { defineConfig } from '@vben/vite-config'; import { loadEnv } from 'vite'; import vitePluginOss from './plugins/vite-plugin-oss.mjs'; export default defineConfig(async ({ mode }) => { // eslint-disable-next-line n/prefer-global/process const env = loadEnv(mode, process.cwd()); // 这样获取,提供默认值 const backendUrl = env.VITE_BACKEND_URL || 'http://localhost:8000'; // 判断是否为构建模式 const isBuild = mode === 'production'; const isOssEnabled = env.VITE_OSS_ENABLED === 'true'; return { application: {}, vite: { base: isBuild && isOssEnabled ? env.VITE_BASE_URL_PROD : '', server: { host: '0.0.0.0', // 保证 docker 内外都能访问 port: 5678, proxy: { '/api': { target: backendUrl, changeOrigin: true, }, '/ws': { target: backendUrl, changeOrigin: true, ws: true, // 启用WebSocket代理 }, }, }, plugins: [ vitePluginOss({ enabled: env.VITE_OSS_ENABLED === 'true', region: env.VITE_OSS_REGION, accessKeyId: env.VITE_OSS_ACCESS_KEY_ID, accessKeySecret: env.VITE_OSS_ACCESS_KEY_SECRET, bucket: env.VITE_OSS_BUCKET, prefix: env.VITE_OSS_PREFIX || '', deleteLocal: env.VITE_OSS_DELETE_LOCAL === 'true', }), ], }, }; });