35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import { loadEnv } from 'vite';
|
||
import { defineConfig } from '@vben/vite-config';
|
||
|
||
// @ts-ignore
|
||
export default defineConfig(async ({ mode }) => {
|
||
const env = loadEnv(mode, process.cwd(), 'VITE_');
|
||
|
||
const baseUrl = env.VITE_BASE_URL || 'http://localhost:48080';
|
||
const apiUrl = env.VITE_GLOB_API_URL || '/admin-api';
|
||
|
||
// 如果 apiUrl 已经是完整 URL(如生产环境),不需要 proxy
|
||
// 开发环境 apiUrl 为相对路径(如 /admin-api),通过 proxy 转发
|
||
const isFullUrl = /^https?:\/\//.test(apiUrl);
|
||
|
||
return {
|
||
application: {},
|
||
vite: {
|
||
server: {
|
||
allowedHosts: true,
|
||
proxy: isFullUrl
|
||
? {}
|
||
: {
|
||
[apiUrl]: {
|
||
changeOrigin: true,
|
||
rewrite: (path) => path.replace(new RegExp(`^${apiUrl}`), ''),
|
||
// 代理目标地址,从环境变量 VITE_BASE_URL + VITE_GLOB_API_URL 拼接
|
||
target: `${baseUrl}${apiUrl}`,
|
||
ws: true,
|
||
},
|
||
},
|
||
},
|
||
},
|
||
};
|
||
});
|