import { defineConfig } from '@vben/vite-config'; import { loadEnv } from 'vite'; // 自行取消注释来启用按需导入功能 // import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'; // import Components from 'unplugin-vue-components/vite'; export default defineConfig(async ({ command, mode }) => { const env = loadEnv(mode, process.cwd(), ''); const apiPrefix = (env.VITE_GLOB_API_URL ?? '').replace(/^"|"$/g, ''); const apiTarget = (env.VITE_APP_URL ?? '').replace(/^"|"$/g, ''); /** 相对路径(如 /dev-api)→ Vite 代理到 VITE_APP_URL,本地开发规避 CORS */ const useDevProxy = apiPrefix.startsWith('/') && !!apiTarget; const devProxy = useDevProxy ? { [apiPrefix]: { target: apiTarget, changeOrigin: true, rewrite: (path: string) => path.replace(new RegExp(`^${apiPrefix}`), ''), configure: (proxy: { on: (e: string, fn: (...args: unknown[]) => void) => void }) => { proxy.on('proxyReq', (_proxyReq, req) => { const url = `${apiTarget}${(req.url ?? '').replace(new RegExp(`^${apiPrefix}`), '')}`; console.log('[dev-api proxy]', req.method, url); }); }, }, } : undefined; return { application: {}, vite: { plugins: [ // Components({ ... }), ], server: { proxy: devProxy, }, }, }; });