I would like to have proxy in my react client, my package.json contains:
...
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"proxy": {
"/auth/google": {
"target": "http://localhost:5000"
}
},
...
But when I ran it, I got error
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.
I tried to convert to string, no errors but proxy is not working
"proxy": "http://localhost:5000"
My 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>
First, install http-proxy-middleware using npm or Yarn:
Next, create src/setupProxy.js and place the following contents in it:
Now, migrate each entry in your proxy object one by one, e.g.:
Place entries into
src/setupProxy.js
like so:You can also use completely custom logic there now! I have got this working response from this link and hence sharing-https://github.com/facebook/create-react-app/issues/5103
I think it is "create-react-app" issue.
You can go to https://github.com/facebook/create-react-app/issues/5103 to migration to the new proxy handling method.
For short, you just need to install a new library called "http-proxy-middleware"
And then create a new file "src/setupProxy.js", and type
Hope this can solve your problem, happy hacking!
After creating a file in the client side (React app ) called
src/setupProxy.js
make sure you restart the server. The package.json file needs to restarted since you were you are dealing with a file outside the source directory.