"proxy" in package.json must be a string 解决方案

200 阅读1分钟

今天用create-react-app创建了一个项目。调试的时候发现页面上的一些资源需要转发到其他服务上。然后用yarn eject展开webpack的相关配置,想配置一个webpack-dev-server的proxy。看到scripts/start.js里面,proxy是在package.json里面配置的。一阵窃喜之后的一记报错然我觉得我自己还是太年轻。

// package.json
"proxy": {
    "/resource": {
      "target": "http://localhost/static/"
    }
}

报错:

image.png

仔细看了下scripts/start.js里面proxy的处理逻辑。发现最后是直接传给webpackDevServer.config的。那就很简单了,我们直接修改webpackDevServer.config里面的proxy,简单粗暴轻松有效。

proxy: {
  "/resource/": {
    target: "http://localhost",
    changeOrigin: true,
    "pathRewrite": {
      "^/resource/": "/static/",
    },
  }
},