webpack-dev-server:通过公司代理转发 HTTPS API 调用
为 webpack-dev-server 现有的代理中间件提供 HttpsProxyAgent,同时保留其目标与路径重写配置。
在 webpack.config.mjs 中按当前代理数组写法配置 Node 侧的 API 连接:
import { HttpsProxyAgent } from 'https-proxy-agent';
export default {
devServer: {
proxy: [{
context: ['/api'],
target: 'https://service.example',
changeOrigin: true,
agent: new HttpsProxyAgent('http://proxy.example:8080'),
pathRewrite: { '^/api': '' },
}],
},
};链路如下:
browser → webpack dev server → corporate proxy → HTTPS APItarget 仍是真正的 HTTPS API。假定项目中已具备的代理客户端会经 HTTP 中间人协商该路径。
context 负责选择浏览器可见的请求路径;pathRewrite 去掉开发环境前缀。二者都不指定公司代理。请为 API 期望的路径保留这些映射。
沿用中间件自身的流式转发和响应处理,使 API 拒绝与传输故障仍可区分。另写一个总是返回 200 的中继会掩盖这一结果。
浏览器代理设置和 npm 的软件包下载代理配置的是其他使用方。此项设置属于发起外部 API 调用的 webpack 进程。