gpt4 book ai didi

reactjs - 指定时,package.json 中的 "proxy"必须是字符串

转载 作者:行者123 更新时间:2023-12-03 12:58:36 30 4
gpt4 key购买 nike

我想在我的 React 客户端中有代理,我的 package.json 包含:

...
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"proxy": {
"/auth/google": {
"target": "http://localhost:5000"
}
},
...

但是当我运行它时,我得到了错误

When specified, "proxy" in package.json must be a string.
[1] Instead, the type of "proxy" was "object".
[1] Either remove "proxy" from package.json, or make it a string.

我尝试转换为字符串,没有错误,但代理不起作用

"proxy": "http://localhost:5000"

我的App.js

<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>hey there</p>
<a href="/auth/google">Sign In With Google</a>
</header>
</div>

最佳答案

您遇到的问题是由 CRA v2 引起的。

首先,如果您只是在代理中使用纯字符串,则不需要任何额外的配置。但是当您使用对象时,您正在使用高级配置。

因此,您必须按照下列步骤操作:

  1. 通过输入 npm i --save http-proxy-middleware 安装 http-proxy-middleware

  2. 从 package.json 中删除条目:

"proxy": {
"/auth/google": {
"target": "http://localhost:5000"
}
}
  • 现在为您的代理创建一个设置文件。您应该在客户端的 src 文件夹中将其命名为 setupProxy.js 并输入以下代码:
  • const proxy = require('http-proxy-middleware');
    module.exports = function(app) {
    app.use(proxy('/auth/google',
    { target: 'http://localhost:5000/' }
    ));
    }

    了解更多信息请查看this

    关于reactjs - 指定时,package.json 中的 "proxy"必须是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52605997/

    30 4 0
    文章推荐: reactjs - 警告 : Use the 'defaultValue' or 'value' props on