CRA 2.0如何在React中设置代理?

时间:2018-11-24 06:51:14

标签: reactjs http-proxy-middleware

在CRA 2.0中,package.json上的代理属性不起作用。经过研究,我发现了一篇文章建议使用http-proxy-middleware。我在客户端文件夹(反应侧)的src中创建了setupProxy.js。其中包含以下代码

const proxy = require("http-proxy-middleware");
module.exports = function(app) {
  console.log("Setup proxy is ever called");
  app.use(proxy("/api/auth/google", { target: "http://localhost:5000/" }));
};

此后我该怎么办。我应该在哪里导入setupProxy.js文件。从那里将收到app

1 个答案:

答案 0 :(得分:2)

proxy中的package.json值在CRA 2中仍然有效,但是现在它只接受字符串,在执行操作时,必须在src/setupProxy.js中放置更复杂的代理选项。但是请注意,如果您将proxy属性保留在package.json中,CRA将使用该属性,而忽略您的setupProxy.js文件。

您不需要在任何地方导入setupProxy.js,只要它在src中,CRA都会找到它。

不用担心app的来源,该变量将在运行时提供。

您的示例将起作用,我已经尝试过(只要您从package.json中删除了旧的代理字符串)。但是console.log不会登录到终端(我不确定为什么)。

进一步阅读,介绍此更改的PR:https://github.com/facebook/create-react-app/pull/5073