2026-07-08 15:56:59 +08:00
|
|
|
|
import { loadEnv } from 'vite';
|
2026-07-08 15:08:41 +08:00
|
|
|
|
import { defineConfig } from '@vben/vite-config';
|
|
|
|
|
|
|
2026-07-08 15:56:59 +08:00
|
|
|
|
// @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);
|
|
|
|
|
|
|
2026-07-08 15:08:41 +08:00
|
|
|
|
return {
|
|
|
|
|
|
application: {},
|
|
|
|
|
|
vite: {
|
|
|
|
|
|
server: {
|
|
|
|
|
|
allowedHosts: true,
|
2026-07-08 15:56:59 +08:00
|
|
|
|
proxy: isFullUrl
|
|
|
|
|
|
? {}
|
|
|
|
|
|
: {
|
|
|
|
|
|
[apiUrl]: {
|
|
|
|
|
|
changeOrigin: true,
|
|
|
|
|
|
rewrite: (path) => path.replace(new RegExp(`^${apiUrl}`), ''),
|
|
|
|
|
|
// 代理目标地址,从环境变量 VITE_BASE_URL + VITE_GLOB_API_URL 拼接
|
|
|
|
|
|
target: `${baseUrl}${apiUrl}`,
|
|
|
|
|
|
ws: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
2026-07-08 15:08:41 +08:00
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
};
|
|
|
|
|
|
});
|