代理
概述
项目中通过函数 createServiceConfig 创建服务的基础路径和匹配代理的字符串
代码位置
@/utils/service.ts
然后在函数 createViteProxy 中根据上述获取的配置创建代理
开启/关闭
通过 env 文件的 VITE_HTTP_PROXY 开启或关闭代理
代码位置
~.env
在 @/service/request/index.ts 里,通过给 getServiceBaseURL 的第二个参数传入根据代码运行环境与 VITE_HTTP_PROXY 共同判断出的 isHttpProxy 来决定该URL是否需要处理代理,您可以在这里通过传入不同的参数解构获取所需的请求URL
const isHttpProxy = import.meta.env.DEV && import.meta.env.VITE_HTTP_PROXY === 'Y';
const { baseURL } = getServiceBaseURL(import.meta.env, isHttpProxy);
const { otherBaseURL } = getServiceBaseURL(import.meta.env, false);原理
默认请求的代理匹配字符串为 /proxy-default/,假如请求的地址为 https://api.example.com/v1/user,则得到的本地代理的地址为 http://localhost:3000/proxy-default/v1/user,当该请求发送时,通过 /proxy-default/ 匹配到代理配置,将请求转发到 https://api.example.com/v1/user。