在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
。
答案 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