feat(proxy): 添加后端API前缀配置选项

添加 VITE_SERVER_HAS_API_PREFIX 环境变量用于控制代理是否保留/api前缀
根据配置决定是否重写代理路径中的/api前缀
This commit is contained in:
feige996
2025-09-07 16:39:28 +08:00
parent 80c588c538
commit 6653ea60fd
3 changed files with 9 additions and 1 deletions

2
env/.env vendored
View File

@@ -18,6 +18,8 @@ VITE_UPLOAD_BASEURL = 'https://ukw0y1.laf.run/upload'
# h5是否需要配置代理
VITE_APP_PROXY_ENABLE = true
VITE_APP_PROXY_PREFIX = '/api'
# 后端是否有统一前缀 /api决定本地代码的时候是否需要去掉 /api 前缀。这里面默认是没有的,即前端会把/api 转发去掉
VITE_SERVER_HAS_API_PREFIX = false
# 第二个请求地址 (目前alova中可以使用)
VITE_API_SECONDARY_URL = 'https://ukw0y1.laf.run'

2
src/env.d.ts vendored
View File

@@ -19,6 +19,8 @@ interface ImportMetaEnv {
readonly VITE_APP_PROXY_ENABLE: 'true' | 'false'
/** H5是否需要代理需要的话有个前缀 */
readonly VITE_APP_PROXY_PREFIX: string // 一般是/api
/** 后端是否有统一前缀 /api */
readonly VITE_SERVER_HAS_API_PREFIX: 'true' | 'false'
/** 认证模式,'single' | 'double' ==> 单token | 双token */
readonly VITE_AUTH_MODE: 'single' | 'double'
/** 上传图片地址 */

View File

@@ -52,6 +52,7 @@ export default ({ command, mode }) => {
VITE_DELETE_CONSOLE,
VITE_APP_PUBLIC_BASE,
VITE_APP_PROXY_ENABLE,
VITE_SERVER_HAS_API_PREFIX,
VITE_APP_PROXY_PREFIX,
} = env
console.log('环境变量 env -> ', env)
@@ -166,7 +167,10 @@ export default ({ command, mode }) => {
[VITE_APP_PROXY_PREFIX]: {
target: VITE_SERVER_BASEURL,
changeOrigin: true,
rewrite: path => path.replace(new RegExp(`^${VITE_APP_PROXY_PREFIX}`), ''),
// 后端有/api前缀则不做处理没有则需要去掉
rewrite: path => JSON.parse(VITE_SERVER_HAS_API_PREFIX)
? path
: path.replace(new RegExp(`^${VITE_APP_PROXY_PREFIX}`), ''),
},
}
: undefined,