'react-scripts' no se reconoce como un comando interno o externo

92

Tengo un proyecto maven, dentro del cual se clona el proyecto JavaScript como un submódulo de git. Entonces la estructura del directorio se parece a

mavenapp/src/main/javascript/[npm project files]

dentro de mi package.json, la prueba se ve así: "test": "react-scripts test --env=jsdom",

pero cuando intento ejecutar la prueba npm dice

'react-scripts' no se reconoce como un comando interno o externo,

Curiosamente, cuando clono el proyecto javascript de forma independiente, no obtengo este error. Intenté volver a ejecutarlo npm install.

npm version : 5.5.1

node version : 9.3.0

J Smith
fuente
Si bien desde entonces he solucionado este problema, agradezco que haya atraído un poco la atención y, como tal, podría ser útil marcar una respuesta como la correcta ... abierta a sugerencias de la comunidad sobre de quién sería .
J Smith

Respuestas:

78

Es un error sobre el archivo de scripts de reacción que falta en su directorio de módulos de nodo en el momento de la instalación.

Verifique que su dependencia de react-script esté disponible o no en package.json

Si no está disponible, agregue manualmente a través de:

npm install react-scripts --save

Yogesh Borad
fuente
11
NO haga esto, esto podría causar problemas con otros proyectos ... NO debe instalar react-scripts globalmente como este. Consulte aquí: github.com/facebook/create-react-app/issues/…
Rosdi Kasim
5
@RosdiKasim Después de leer tu comentario, me he dado cuenta de mi error. Ahora, he cambiado el comando para el proyecto específico en lugar de globalmente (-g).
Yogesh Borad
Nada cambia para mí, sigue siendo el mismo error. Ejecutar "npm install react-scripts --save" incluso si tiene éxito no crea ninguna carpeta react-scripts en la carpeta npm_modules. Estoy en Windows10
Giox
@RosdiKasim, según tu comentario, debes seguir el final del hilo en Github. Estaba ejecutando el mismo problema y lo solucioné haciendo esto stackoverflow.com/a/54403797/8719007 (la respuesta a continuación)
Serge Kishiko
43

Has probado:

rm -rf node_modules && npm install

Limpiar node_modulesprimero, a menudo tiende a solucionar muchos problemas extraños relacionados con paquetes como ese en Node.

Jonny Asmar
fuente
2
sí, tengo ... no hay diferencia ... Por ahora tuve que eliminar el submódulo y pegarlo manualmente.
J Smith
Hmm, no ves ningún error registrado de tu npm install¿verdad? Intente ejecutar un npm install -fy vea si algo cambia. Podría ser otro paquete que no se instala y bloquea la create-react-appinstalación por completo. Forzar una instalación npm con -f, por cierto, nunca es una solución completa ... solo un paso de solución de problemas. Si algo cambia después de ejecutarlo, entonces sabrá que hay algún problema con uno de los paquetes.
Jonny Asmar
Además, es posible que desee verificar que tiene un archivo en javascript/node_modules/.bin/react-scripts. De lo contrario, podría haber varias causas diferentes para esto, que incluyen problemas de permisos, restricciones del sistema operativo para crear enlaces simbólicos (todo lo que contiene node_moduels/.bines un enlace simbólico generado en la instalación. También podría ser que no tiene instalados los scripts de reacción ... intente correr npm install --save react-scriptsy ver si eso ayuda.
Jonny Asmar
1
Pasar de MacOS a Windows (Dropbox sincroniza toda la node_modulescarpeta) - solamente eliminar la carpeta y volver a instalar lo resolvió
AS
Sí, eso es lo que hace el comando anterior. Es probable que su síntoma se deba a una serie de paquetes que realizan procedimientos de instalación condicional por sistema operativo. Linux, Mac y Windows tienen bastantes discrepancias con muchas dependencias fundamentales del proyecto.
Jonny Asmar
30

Si react-scriptsestá presente enpackage.json

Si ve algo como esto "react-scripts": "2.1.3"en su pakage.jsonarchivo, simplemente escriba este comando

npm install

Si react-scriptsno está presente enpackage.json

Si no hay nada parecido "react-scripts"en su package.jsonarchivo, entonces probablemente no lo haya instalado. Para hacer eso, escriba el siguiente comando y estará listo

npm install react-scripts --save

Hadi Mir
fuente
1
¿Qué pasa si lo tengo en mi package.json y también lo instalo, pero tengo el mismo problema?
Serob_b
@Serob_b A veces también tengo el mismo problema, en ese caso simplemente ejecuto "npm install" y resuelve el problema. o siempre puede eliminar la carpeta node_modules escribiendo rm "-rf node_modules" en la terminal y luego ejecutar "npm install". espero que esto ayude
Hadi Mir
9

En mi situación, ocurrieron algunos problemas con mi paquete de nodos. Así que corrí npm audit fixy solucionó todos los problemas.

Nguyen Duc Thanh
fuente
8

Me enfrenté al mismo problema. Pero ejecutar el comando de actualización npm resolvió mi problema.

Miraj Khandaker
fuente
Esa fue la solucion. Gracias.
Dzenis H.
3

soluciono este problema :-), simplemente desinstale su node.js y muestre los archivos ocultos

luego vaya a "C: \ Users \ yourpcname \ AppData \ Roaming \

luego elimine las carpetas "npm" y "npm-cache"

e instale una nueva versión de node.js.

Sandro Cagara
fuente
2
En realidad, esta no es una solución.
Phani Rithvij
Este funcionó para mí.
UA
2

react-scripts no se reconoce como un comando interno o externo relacionado con npm.

Actualizaría todas mis dependencias en mis archivos package.json a las últimas versiones tanto en el directorio principal como en el directorio del cliente, si corresponde. Puede hacer esto usando un asterisco "*" en lugar de especificar un número de versión específico en sus archivos package.json para sus dependencias.

Por ejemplo:

"dependencies": {
    "body-parser": "*",
    "express": "*",
    "mongoose": "*",
    "react": "*",
    "react-dom": "*",
    "react-final-form": "*",
    "react-final-form-listeners": "*",
    "react-mapbox-gl": "*",
    "react-redux": "*",
    "react-responsive-modal": "*",
  }

Luego, me aseguraría de eliminar cualquier paquete-lock.json y luego ejecutar npm install y yarn install tanto en el directorio principal como en el directorio del cliente, si corresponde.

A continuación, debería poder ejecutar una construcción de hilo y luego usar el inicio de hilo para ejecutar la aplicación.

Ahmedakhtar11
fuente
Este es un mal consejo. El uso *de sus números de versión es problemático porque podría causar que se instalen diferentes versiones de paquetes en diferentes sistemas. Use números de versión bloqueados y actualícelos según sea necesario
Dana Woodman
Sí, las cosas podrían salir totalmente mal aquí para fines de producción, pero solo una idea para fines de prueba.
Ahmedakhtar
2

Enfrenté el mismo problema, aunque estoy usando hilo.

Lo siguiente funcionó para mí:

yarn install 
yarn start
Papa Francisco
fuente
1

Para cambio de aplicaciones portátiles

package.json

como sigue

"scripts": {
    "start": "node node_modules/.bin/react-scripts start",
    "build": "node node_modules/.bin/react-scripts build",
    "test": "node node_modules/.bin/react-scripts test",
    "eject": "node node_modules/.bin/react-scripts eject"
  }
smamran
fuente
0

He probado muchas de las soluciones a este problema encontradas en línea, pero en mi caso nada funcionó excepto reinstalar NVM para Windows (que estoy usando para administrar múltiples versiones de Node). En el instalador, detecta las versiones de Nodo instaladas y le pregunta al usuario si desea que NVM las controle. Dije que sí y NVM solucionó todos los problemas de PATH. Como resultado, las cosas funcionaron como antes. Este problema puede tener múltiples causas, pero PATH corrupto es definitivamente una de ellas y (re) instalar NVM corrige PATH.

Tomáš Hübelbauer
fuente
0

Esta es una pregunta bastante antigua, pero podría ser útil para futuras referencias. Elimine la carpeta node_modules y vuelva a ejecutar npm install. Trabajó para mi.

Koder90
fuente
0

En mi caso, edité mis archivos en Linux donde tenía el nodo v14.0.5 instalado, cuando reinicié en Windows donde tenía el nodo v14.0.3 obtuve el mismo error. Así que actualicé la versión del nodo en Windows y todo salió bien para mí.

Sourabh
fuente
0

Así es como lo soluciono

  1. Verifique y actualice la variable de ruta (vea a continuación cómo actualizar la variable de ruta)
  2. Eliminar node_modules y package-lock.json
  3. correr npm install
  4. correr npm run start

si esto no funcionó, intente instalar nodejs y ejecute la reparación

o limpiar caché npm npm cache clean --force

Para actualizar la variable de ruta

  1. presione la tecla de Windows
  2. Buscar Edit the system environmental variable
  3. Haga clic en Environment Variables...
  4. en la sección inferior de la variable del sistema (habrá dos secciones)
  5. Seleccionar Pathnombre de variable
  6. Hacer clic Edit..
  7. Compruebe si hay C:\Program Files\nodejsen la lista, si no agregue esto
Salman
fuente
0

Tuve un problema similar ... utilicé hilo para solucionarlo. Me di cuenta de que los scripts de reacción no se encontraron en los módulos de mi nodo, así que decidí descargarlo con npm, pero parece que también estoy fallando. ¡Así que probé yarn (yarn add react-scripts) y eso resolvió la pesadilla! Espero que esto funcione para ti también. Felices amigos de depuración.

Emmanuel Sewah
fuente
-1

En mi caso, el problema tenía que ver con no tener suficientes permisos de archivo para algunos archivos en los que iba a escribir la instalación del paquete react-scripts. Lo que lo resolvió fue ejecutar git bash como administrador y luego npm install --save react-scriptsvolver a ejecutarlo .

Adim Victor
fuente
-2

Cuando hago un nuevo proyecto usando React, para instalar los módulos de React tengo que ejecutar "npm install" (PowerShell) desde la carpeta ClientApp de nuevos proyectos (por ejemplo, "C: \ Users \ Chris \ source \ repos \ HelloWorld2 \ HelloWorld2 \ ClientApp "). La aplicación web .NET core con React necesita tener los archivos de React instalados en la ubicación correcta para que los comandos de React funcionen correctamente.

Christopher Upton
fuente