在 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 API

target 仍是真正的 HTTPS API。假定项目中已具备的代理客户端会经 HTTP 中间人协商该路径。

context 负责选择浏览器可见的请求路径;pathRewrite 去掉开发环境前缀。二者都不指定公司代理。请为 API 期望的路径保留这些映射。

沿用中间件自身的流式转发和响应处理,使 API 拒绝与传输故障仍可区分。另写一个总是返回 200 的中继会掩盖这一结果。

浏览器代理设置和 npm 的软件包下载代理配置的是其他使用方。此项设置属于发起外部 API 调用的 webpack 进程。

相关文章