请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

package.json 配置 proxy 代理报错, 报错信息如下:

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.

正在回答

3回答

你好,这个是create-react-app版本的问题。课程录制时,create-react-app的版本是1.x,支持proxy值设置为object类型。当前2.x已经发布,但不支持object类型的proxy值。

解决这个问题有3种方法:

方法1:将package.json中的proxy配置改为: "proxy": "http://localhost:5000"。

方法2:

    1. 安装 http-proxy-middleware,在项目根路径下执行: npm install http-proxy-middleware

    2. 在src文件夹根目录下,创建 setupProxy.js 文件,文件内容为:

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

module.exports = function(app) {
  app.use(proxy('/api', { target: 'http://localhost:5000/' }));
};

     3. 删除package.json中的原有proxy配置。

方法3: 将package.json中的依赖react-scripts的版本改为1.x,例如课程录制时使用的是1.1.4。


3 回复 有任何疑惑可以回复我~
  • 提问者 宝慕林6688393 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-01-31 23:17:59
  • 如果按方法一的话虽然启动不报错,但是没有代理到指定的接口
    回复 有任何疑惑可以回复我~ 2019-03-06 21:08:00
郭纯 2019-01-26 13:55:53

因为create-react-app 版本的问题 现在的proxy的值只能是一个字符窜。

例如: "proxy":  "http://localhost:5000"

但是有两种办法解决

1:降低create-react-app 版本

2:替代方案

npm install http-proxy-middleware --save 安装http-proxy-middleware

在src/目录创建 setupProxy.js 文件

文件内容

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

module.exports = function(app) {

app.use(proxy('/api', { target: 'http://localhost:5000/' }));

};


5 回复 有任何疑惑可以回复我~
ChelFannie 2020-12-29 11:56:28

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.

看过老师之前的回答了,不管是哪个方法都无效,希望老师能解答一下,谢谢!

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信