package.json里设置多个代理报错proxy必须是string?
在create-react-app里想设置多个代理,
百度搜的写法都是在package.json里像这样写:
{
"proxy":{
"/api": {
"target": "http://0.0.0.89:7300",
"ws": true
},
"/foo": {
"target": "http://0.0.11.22:8848",
"ws": true
}
}
}
然后 npm start 报错
When specified, "proxy" in package.json must be a string.
Instead, the type of "proxy" was "object".
Either remove "proxy" from package.json, or make it a string.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! r-d-m@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
求助,谢谢!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
还有一种非常简单的方法
大概是这样
你在packge.json加入
然后你页面中的请求fetch('/api/userdata/')就会转发到proxy中的地址
也就是真实的请求是http://0.0.0.89:7300/api/userdata/,而且也不会有跨域问题
因为在浏览器看来,你只是发了fetch('/api/userdata/'),没有跨域问题
我已经找到解决方案,create-react-app 文档里面有解决方案http-proxy-middleware
在CRA2.X升级以后对proxy的设置做了修改,引用官方升级文档:
如果proxy的值是字符串,不需要修改
如果proxy的值是一个json,则需要做如下修改:
迁移到setupProxy.js中
在package.json中查看你的react-scripts的版本号 版本太高可能不支持 把node_modules/react-scripts删除了 重新安装 npm i react-scripts@1.1.1 --save