参考文档:vite 官网、node-http-proxy
完整示例:
export default defineConfig({server: {proxy: {// 字符串简写写法'/foo': 'http://localhost:4567',// 选项写法'/api': {target: 'http://jsonplaceholder.typicode.com',changeOrigin: true,rewrite: (path) => path.replace(/^\/api/, '')},// 正则表达式写法'^/fallback/.*': {target: 'http://jsonplaceholder.typicode.com',changeOrigin: true,rewrite: (path) => path.replace(/^\/fallback/, '')},// 使用 proxy 实例'/api': {target: 'http://jsonplaceholder.typicode.com',changeOrigin: true,configure: (proxy, options) => {// proxy 是 'http-proxy' 的实例}}}}
})
属性说明:
- target:是目标地址,示例
'/foo': 'http://abc:4567'
中,当一个完整的请求 http://loaclhost:8080/foo/login 在匹配到关键词 /foo 后将代理到地址 http://abc:4567/foo/login 上,需要注意的是替换的是关键词前面的内容,关键词包括后面的内容将会原封不动的添加到目标地址上。 - changeOrigin:true/false,默认值:false,将请求头的源(origin)更改为 target 的 URL
- secure: true/false, 是否验证 https 的 ssl 证书
- rewrite:重写地址,是一个函数,接收一个地址,修改后并返回此地址