【问题标题】:How to configure a proxy like in CRA without create-react-app?如何在没有 create-react-app 的情况下在 CRA 中配置代理?
【发布时间】:2020-04-14 05:24:03
【问题描述】:

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

这允许我从不同的端口为我的应用程序提供服务。

如果没有create-react-app,我如何进行相同的配置?

如果使用与 create-react-app 相同的配置来受益于相同的代理,那就太好了。

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

  • 为什么你更喜欢http-proxy 而不是http-proxy-middleware,由 facebook 和 create-react-app 选择?
  • 老实说,我并没有考虑太多,因为它是一个开发工具,它从来没有给我任何关于失败请求或任何问题的问题......我开始在 react 环境之外使用它,所以我什至不知道http-proxy-middleware,但是很好的发现,我会看看:D
猜你喜欢
  • 1970-01-01
  • 2019-08-05
  • 2020-04-02
  • 2023-03-12
  • 2021-05-14
  • 1970-01-01
  • 2023-03-12
  • 2020-06-08
  • 2019-06-10
相关资源
最近更新 更多