如何在没有create-react-app的情况下在CRA中配置代理?

时间:2019-12-22 17:33:43

标签: javascript reactjs proxy expo create-react-app

create-react-app中,我可以使用proxy中的package.json来自动配置代理,如此处https://create-react-app.dev/docs/proxying-api-requests-in-development/

所述

这使我可以从其他端口提供我的应用程序。

在没有create-react-app的情况下如何进行相同的配置?

最好拥有与create-react-app相同的代理以受益于相同的配置。

1 个答案:

答案 0 :(得分:0)

您可以创建一个文件来与node一起运行以充当代理。像这样:

proxy.js

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

const proxy = httpProxy.createProxyServer({
  secure: false,
  changeOrigin: true,
  target: 'https://someOriginURL.com',
  // could be an IP address target: 'https://XX.XX.XXX.XXX/',
}).listen(3500, () => console.log('Proxy running on port 3500'));

// Intercepts the request 
proxy.on('proxyReq', function(proxyReq, req, res, options) {
  console.log(req);
  // Set the headers of the intercepted request
  proxyReq.setHeader('Origin', 'https://yourorigin.com');
  // remove any headers you want 
  // proxyReq.removeHeader('authorization');

  res.oldWriteHead = res.writeHead;
  res.writeHead = function(statusCode, headers) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.oldWriteHead(statusCode, headers);
  }
});

要使用此功能,请打开终端并运行:

node proxy.js

P.S .:请勿在生产环境中使用:D