Skip to content

代理

概述

项目中通过函数 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

根据 MIT 许可证发布