He tenido en cuenta este error en mi proyecto cuando agrego "proxy": "http://localhost:6000" en mi paquete.json.
Esta es la respuesta de error después del inicio del hilo.
Objeto de opciones no válido. El servidor de desarrollo se ha inicializado con un objeto de opciones que no coincide con el esquema de la API.
- options.allowedHosts[0] debe ser una cadena no vacía. error El comando falló con el código de salida 1. información Visite https://yarnpkg.com/en/docs/cli/run para obtener documentación sobre este comando.
Pero todo está bien cuando elimino el "proxy": "http://localhost:6000" .
Esto está en mi paquete.json:
{ "name": "client", "version": "0.1.0", "private": true, "dependencies": { "@material-ui/core": "^4.12.3", "@testing-library/jest-dom": "^5.16.1", "@testing-library/react": "^12.1.2", "@testing-library/user-event": "^13.5.0", "axios": "^0.24.0", "moment": "^2.29.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-file-base64": "^1.0.3", "react-redux": "^7.2.6", "react-scripts": "5.0.0", "redux": "^4.1.2", "redux-thunk": "^2.4.1", "web-vitals": "^2.1.2" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "proxy": "http://localhost:6000" }Aquí hay una solución. Eliminar "proxy": "http://localhost:6000" . Instale el paquete http-proxy-middleware con el comando npm install http-proxy-middleware --save . Cree un archivo setupProxy.js dentro de su carpeta src. Añade estas líneas dentro:
const { createProxyMiddleware } = require('http-proxy-middleware'); module.exports = function(app) { app.use( '/api', createProxyMiddleware({ target: 'http://localhost:6000', changeOrigin: true, }) ); };Ahora, ejecuta tu aplicación. Deberia de funcionar.
Tuve el mismo problema. Puede agregar "allowedHosts": "all" después de "proxy": "https://yourdomain" en su paquete.json . espero que resuelva tu problema.
actualización: el problema era con la VPN de la empresa. Cuando desconecto la VPN, funciona normalmente.
He enfrentado el mismo problema ... Pero cuando me conecté a Internet, funciona bien ...
Las otras soluciones no me funcionaron, así que esto es lo que encontré:
Esto parece ser un error de CRA (¿característica de seguridad?) Donde allowedHosts se establece en [undefined] porque prepareUrls no establece lanUrlForConfig cuando se especifican tanto un host como un proxy. El problema relevante de CRA GitHub está aquí .
Si corresponde en su caso de uso (lea aquí para obtener más información), esto se puede evitar creando un archivo .env y agregando DANGEROUSLY_DISABLE_HOST_CHECK DANGEROUSLY_DISABLE_HOST_CHECK=true o probando DANGEROUSLY_DISABLE_HOST_CHECK=true yarn start .
Resolví el problema con la solución http-proxy-middleware como otros. Pero para que funcionara correctamente, tuve que cerrar mi VPN. La misma respuesta que Saeed Kolivand tiene arriba. =)
Tuve el mismo problema y la respuesta de josipat funcionó para mí, excepto que necesitaba instalarlo como una dependencia de desarrollo. La solución en la que se guarda el siguiente código en src/setUpProxy.js se origina en Create React App .
const { createProxyMiddleware } = require('http-proxy-middleware'); module.exports = function(app) { app.use( '/api', createProxyMiddleware({ target: 'http://localhost:5000', changeOrigin: true, }) ); };Una solución rápida es degradar webpack versión de su paquete web usando react-scripts
En el archivo package.json de su aplicación de reacción, cambie la versión react-scripts .
Reemplazar
"react-scripts": "5.*",Para
"react-scripts": "4.0.3", Elimine node_modules e instale los paquetes nuevamente para su aplicación de reacción.