55 votes

Lorsqu'il est spécifié, "proxy" dans package.json doit être une chaîne

Je voudrais avoir un proxy dans mon client react, mon package.json contient:

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

Mais quand je l'ai couru, j'ai eu une erreur

 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.

J'ai essayé de convertir en chaîne, aucune erreur mais le proxy ne fonctionne pas

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

Mon App.js

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

5voto

Jon Points 361

Ce qui suit a fonctionné pour moi:

Supprimez "proxy" de votre package.json.

Installez 'http-proxy-middleware' dans le répertoire client. Pour ce faire, cd dans le répertoire client et exécutez "npm i --save http-proxy-middleware". Ensuite, créez un nouveau fichier dans le répertoire src de votre client appelé "setupProxy.js". Placez le code suivant dans ce fichier:

 const { createProxyMiddleware } = require('http-proxy-middleware');
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
    app.use(createProxyMiddleware('/api/', // replace with your endpoint
        { target: 'http://localhost:8000' } // replace with your target
    ));
}

redémarrez le serveur et vous devriez être prêt à partir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X