Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用Create React App和React脚本版本3.4.1代理多个API请求_Reactjs_Create React App_React Scripts - Fatal编程技术网

Reactjs 使用Create React App和React脚本版本3.4.1代理多个API请求

Reactjs 使用Create React App和React脚本版本3.4.1代理多个API请求,reactjs,create-react-app,react-scripts,Reactjs,Create React App,React Scripts,我目前正在使用旧版本的React脚本版本1.5.1。我想升级我的react应用程序(react脚本V3.4.1),但这样做会破坏package.json中定义的代理结构 我当前的JSON "proxy": { "/ossapi": { "target": "http://localhost:8002" }, "/pcp": { "target": "http://test.corp.test.com:8004" }, "/ossOps": { "tar

我目前正在使用旧版本的React脚本版本1.5.1。我想升级我的react应用程序(react脚本V3.4.1),但这样做会破坏package.json中定义的代理结构

我当前的JSON

"proxy": {
  "/ossapi": {
    "target": "http://localhost:8002"
  },
  "/pcp": {
    "target": "http://test.corp.test.com:8004"
  },
  "/ossOps": {
    "target": "http://test.corp.test.com:8085"
  },
  "/ems": {
    "target": "http://test.corp.test.com:8001"
  }
}
即使在升级到新的React脚本版本3.4.1之后,我也希望我的应用程序有一个类似的设置,因为我已经做了大量的开发,不想重新启动。 当我将react脚本版本更改为最新的稳定版本3.4.1时,它不断抛出无法解析json错误

请告知

以下是我得到的错误:

npm ERR! code EJSONPARSE
npm ERR! file /Users/dhrumit.sheth/Documents/Dev/stash/console-app/package.json
npm ERR! JSON.parse Failed to parse json
npm ERR! JSON.parse Unexpected token } in JSON at position 1438 while parsing near '...git push --tags",
npm ERR! JSON.parse   },
npm ERR! JSON.parse "proxy": [
npm ERR! JSON.parse   "/os...'
npm ERR! JSON.parse Failed to parse package.json data.
npm ERR! JSON.parse package.json must be actual JSON, not just JavaScript.
我相信package.json中的“proxy”适用于单端点。要获得更高级的配置,您需要在项目根文件夹中创建
setpProxy.js
文件,安装
http代理中间件
,并将配置放在那里。代码将如下所示

module.exports = function(app) {
  app.use(
    '/ossapi',
    createProxyMiddleware({
      target: 'http://localhost:8002',
      changeOrigin: true,
    })
  );
  app.use(
    '/pcp',
    createProxyMiddleware({
      target: 'http://test.corp.test.com:8004',
      changeOrigin: true,
    })
  );
};
其余的都一样。
这里。

谢谢您的回复。但是在多个代理和目标的情况下,我们是传递object还是array?你不传递array或object@Mave7。我已经为您的用例修改了我的答案。请看它是否有效。