如何在CRA v2中将代理值从package.json移动到setupProxy.js?

时间:2018-10-09 05:52:12

标签: reactjs cors create-react-app package.json

自从最近发布CRA(创建React App)v2以来,现在可以将代理设置从package.json移至setupProxy.js。我的问题很简单:如果我只想一直使用setupProxy.js,我的http://127.0.0.1:5000应该是什么样?我需要这样做,因为如果一切正常(到目前为止没有运气),我可以将其替换为开发/生产环境的.env文件中的变量。 但是到目前为止,我只得到a或b:

a)CORS错误

b)由于http请求而返回了我应用的index.html

这是我尝试过的setupProxy.js版本之一的示例:

const proxy = require('http-proxy-middleware');

module.exports = function(app) {
  app.use('/', proxy({target: 'http://127.0.0.1:5000', changeOrigin: true}));
  app.use('/*', proxy({target: 'http://127.0.0.1:5000', changeOrigin: true}));
  app.use(proxy({'/', target: 'http://127.0.0.1:5000', changeOrigin: true}));
  app.use(proxy({'/*', target: 'http://127.0.0.1:5000', changeOrigin: true}));
};

我尝试了app.use行的各种版本,我只是在此处发布了几个示例。

我通常一次尝试一次app.use行,但也尝试了多行。

每次更改文件时,我都会重新启动react app。

我还尝试使用process.env.REACT_APP_BACKEND_BASEURL代替'http://127.0.0.1:5000',这是我的最终目标。

2 个答案:

答案 0 :(得分:0)

所以尝试

app.use(proxy('/**', { target:'http://127.0.0.1:5000', changeOrigin: true }))

答案 1 :(得分:0)

如果我没记错,正确使用C:\Windows\System32仅对本地开发有用,但我也需要它在实时/部署服务器上工作,因此我最终根本不使用setupProxy.js -我在不同的setupProxy.js文件(REACT_APP_BACKEND_BASEURL文件中的loclahost url和.env文件中的远程URL)中将不同的后端URL保存为.env.development变量,并替换了所有在前端出现的URL使用.env.production的JavaScript代码。