import { fileURLToPath, URL } from 'node:url' import { defineConfig, loadEnv } from 'vite' import vue from '@vitejs/plugin-vue' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), '') const proxyTarget = env.API_PROXY_TARGET || 'http://localhost:8080' const authProxyTarget = env.AUTH_API_PROXY_TARGET || proxyTarget const iamProxyTarget = env.IAM_API_PROXY_TARGET || proxyTarget const warehouseProxyTarget = env.WAREHOUSE_API_PROXY_TARGET || proxyTarget const overseasProxyTarget = env.OVERSEAS_API_PROXY_TARGET || 'http://localhost:9300' return { plugins: [ vue(), AutoImport({ resolvers: [ElementPlusResolver()], dts: 'src/auto-imports.d.ts', }), Components({ resolvers: [ElementPlusResolver()], dts: 'src/components.d.ts', }), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, server: { strictPort: true, proxy: { '/api/auth': { target: authProxyTarget, changeOrigin: true, configure(proxy) { proxy.on('proxyReq', (proxyRequest) => { proxyRequest.removeHeader('origin') }) }, }, '/api/platform/v1/iam': { target: iamProxyTarget, changeOrigin: true, configure(proxy) { proxy.on('proxyReq', (proxyRequest) => { proxyRequest.removeHeader('origin') }) }, }, '/api/platform/v1/warehouse-admin': { target: warehouseProxyTarget, changeOrigin: true, configure(proxy) { proxy.on('proxyReq', (proxyRequest) => { proxyRequest.removeHeader('origin') }) }, }, '/api': { target: proxyTarget, changeOrigin: true, configure(proxy) { proxy.on('proxyReq', (proxyRequest) => { proxyRequest.removeHeader('origin') }) }, }, '/overseas-api': { target: overseasProxyTarget, changeOrigin: true, rewrite: (path) => path.replace(/^\/overseas-api/, '/api'), configure(proxy) { proxy.on('proxyReq', (proxyRequest) => { proxyRequest.removeHeader('origin') }) }, }, }, }, } })