'React-Scripts' wird nicht als interner oder externer Befehl erkannt

94

Ich habe ein Maven-Projekt, in dem ein JavaScript-Projekt als Git-Submodul geklont ist. Die Verzeichnisstruktur sieht also ungefähr so ​​aus

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

In meiner package.json sieht der Test folgendermaßen aus: "test": "react-scripts test --env=jsdom",

aber wenn ich versuche npm test auszuführen heißt das

'React-Scripts' wird nicht als interner oder externer Befehl erkannt.

Interessanterweise wird dieser Fehler nicht angezeigt, wenn ich das Javascript-Projekt unabhängig klone. Ich habe versucht, erneut zu laufen npm install.

npm version : 5.5.1

node version : 9.3.0

J Smith
quelle
Während ich dieses Problem inzwischen umgangen habe, schätze ich, dass es ein wenig Aufmerksamkeit erregt hat und es daher nützlich sein kann, eine Antwort als die richtige zu markieren ... offen für Vorschläge der Community, wer das sein würde .
J Smith

Antworten:

79

Es ist ein Fehler bezüglich der React-Scripts- Datei, die zum Zeitpunkt der Installation in Ihrem Knotenmodulverzeichnis fehlt .

Überprüfen Sie, ob Ihre React -Script- Abhängigkeit in package.json verfügbar ist oder nicht

Wenn nicht verfügbar, fügen Sie manuell hinzu über:

npm install reag-scripts --save

Yogesh Borad
quelle
11
Tun Sie dies NICHT, dies könnte Probleme mit anderen Projekten verursachen. Sie sollten React-Skripte NICHT global so installieren. Siehe hier: github.com/facebook/create-react-app/issues/…
Rosdi Kasim
5
@RosdiKasim Nachdem ich Ihren Kommentar gelesen habe, habe ich meinen Fehler erkannt. Jetzt habe ich den Befehl für das jeweilige Projekt anstelle von global (-g) geändert.
Yogesh Borad
Für mich ändert sich nichts, immer noch der gleiche Fehler. Das Ausführen von "npm install react-scripts --save", auch wenn erfolgreich keine Ordner-React-Scripts im Ordner npm_modules erstellt werden. Ich bin auf
Windows 10
@RosdiKasim, basierend auf deinem Kommentar, solltest du dem Ende des Threads auf Github folgen. Ich hatte das gleiche Problem und habe das Problem behoben, indem ich es wie folgt gemacht habe : stackoverflow.com/a/54403797/8719007 (die Antwort unten)
Serge Kishiko
45

Hast du es versucht:

rm -rf node_modules && npm install

Wenn Sie node_moduleszuerst wischen , werden häufig viele seltsame, paketbezogene Probleme wie in Node behoben.

Jonny Asmar
quelle
2
Ja, ich habe ... keinen Unterschied ... Im Moment musste ich nur das Submodul entfernen und es einfach manuell einfügen.
J Smith
Hmm, Sie sehen keine Fehler, die von Ihnen protokolliert wurden npm install, oder? Versuchen Sie, eine auszuführen npm install -fund festzustellen, ob sich etwas ändert. Könnte ein anderes Paket sein, das nicht installiert werden kann und dessen create-react-appvollständige Installation blockiert . Das Erzwingen einer npm-Installation mit -fist übrigens nie eine vollständige Lösung ... nur ein Schritt zur Fehlerbehebung. Wenn sich danach etwas ändert, wissen Sie, dass mit einem der Pakete etwas nicht stimmt.
Jonny Asmar
Darüber hinaus möchten Sie möglicherweise überprüfen, ob Sie eine Datei unter haben javascript/node_modules/.bin/react-scripts. Wenn nicht, kann dies verschiedene Ursachen haben, darunter Berechtigungsprobleme und Einschränkungen des Betriebssystems beim Erstellen von Symlinks (alles in node_moduels/.binist ein bei der Installation generierter Symlink. Könnte auch nur sein, dass Sie keine React-Skripte installiert haben ... versuchen Sie es Laufen npm install --save react-scriptsund sehen, ob das hilft.
Jonny Asmar
1
Der Wechsel von MacOS zu Windows (Dropbox hat den gesamten node_modulesOrdner synchronisiert ) - nur das Löschen des Ordners und die Neuinstallation haben ihn behoben
AS
Ja - genau das macht der obige Befehl. Ihr Symptom war wahrscheinlich auf eine Reihe von Paketen zurückzuführen, die bedingte Installationsprozeduren pro Betriebssystem ausführen. Linux, Mac und Windows weisen einige Unstimmigkeiten mit vielen grundlegenden Projektabhängigkeiten auf.
Jonny Asmar
31

Wenn react-scriptsin vorhanden istpackage.json

Wenn Sie so etwas "react-scripts": "2.1.3"in Ihrer pakage.jsonDatei sehen, geben Sie einfach diesen Befehl ein

npm install

Wenn react-scriptsnicht vorhanden ist inpackage.json

Wenn "react-scripts"Ihre package.jsonDatei nichts Vergleichbares enthält, haben Sie sie wahrscheinlich nicht installiert. Geben Sie dazu den folgenden Befehl ein, und Sie sind fertig

npm install react-scripts --save

Hadi Mir
quelle
1
Was ist, wenn ich es in meiner package.json habe und es auch installiere, aber das gleiche Problem habe?
Serob_b
@Serob_b Manchmal habe ich auch das gleiche Problem in diesem Fall, ich führe einfach "npm install" aus und es löst das Problem. oder Sie können den Ordner node_modules jederzeit löschen, indem Sie rm "-rf node_modules" in das Terminal eingeben und dann "npm install" ausführen. hoffe das hilft
Hadi Mir
9

In meiner Situation sind einige Probleme mit meinem Knotenpaket aufgetreten. Also renne ich npm audit fixund es hat alle Probleme behoben

Nguyen Duc Thanh
quelle
9

Ich hatte das gleiche Problem. Aber das Ausführen des Befehls npm update hat mein Problem gelöst.

Miraj Khandaker
quelle
Das war die Lösung. Vielen Dank.
Dzenis H.
3

Ich behebe dieses Problem :-), deinstalliere einfach deine node.js und zeige versteckte Dateien

Gehen Sie dann zu "C: \ Benutzer \ Ihr PC-Name \ AppData \ Roaming \"

Löschen Sie dann die Ordner "npm" und "npm-cache"

und installieren Sie eine neue Version von node.js.

Sandro Cagara
quelle
2
Dies ist keine wirkliche Lösung.
Phani Rithvij
Dieser hat für mich gearbeitet.
UA
2

React-Skripte werden nicht erkannt, da ein interner oder externer Befehl mit npm zusammenhängt.

Ich würde alle meine Abhängigkeiten in meinen package.json-Dateien auf die neuesten Versionen sowohl im Hauptverzeichnis als auch im Client-Verzeichnis aktualisieren, falls zutreffend. Sie können dies tun, indem Sie ein Sternchen "*" verwenden, anstatt eine bestimmte Versionsnummer in Ihren package.json-Dateien für Ihre Abhängigkeiten anzugeben.

Zum Beispiel:

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

Ich würde dann sicherstellen, dass alle package-lock.json gelöscht wurden, und dann npm install und yarn install sowohl im Hauptverzeichnis als auch im Client-Verzeichnis ausführen, falls zutreffend.

Sie sollten dann in der Lage sein, einen Garnaufbau auszuführen und dann die Anwendung mit Garnstart auszuführen.

Ahmedakhtar11
quelle
Das ist ein schlechter Rat. Die Verwendung *Ihrer Versionsnummern ist problematisch, da dadurch unterschiedliche Versionen von Paketen auf unterschiedlichen Systemen installiert werden können. Verwenden Sie gesperrte Versionsnummern und aktualisieren Sie diese nach Bedarf
Dana Woodman
Ja, hier könnte es zu Produktionszwecken völlig schief gehen, aber nur zu Testzwecken.
Ahmedakhtar11
2

Konnte das gleiche Problem, obwohl ich Garn verwende.

Folgendes hat bei mir funktioniert:

yarn install 
yarn start
Papst Franziskus
quelle
1

Für tragbare Apps ändern

package.json

wie folgt

"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
quelle
0

Ich habe viele der online gefundenen Lösungen für dieses Problem ausprobiert, aber in meinem Fall hat nichts funktioniert, außer NVM für Windows neu zu installieren (mit dem ich mehrere Knotenversionen verwalte). Im Installationsprogramm erkennt es installierte Knotenversionen und fragt den Benutzer, ob NVM diese steuern soll. Ich sagte ja und NVM hat alle PATH-Probleme behoben. Infolgedessen funktionierten die Dinge wie zuvor. Dieses Problem kann mehrere Ursachen haben, aber beschädigtes PATH ist definitiv eine davon und die (Neu-) Installation von NVM behebt PATH.

Tomáš Hübelbauer
quelle
0

Dies ist eine ziemlich alte Frage, aber dies könnte für zukünftige Referenz hilfreich sein. Löschen Sie den Ordner node_modules und führen Sie die npm-Installation erneut aus. Hat für mich gearbeitet.

Koder90
quelle
0

In meinem Fall habe ich meine Dateien unter Linux bearbeitet, auf dem Knoten v14.0.5 installiert war. Beim Neustart auf Windows, auf dem Knoten v14.0.3 installiert war, wurde der gleiche Fehler angezeigt. Also habe ich die Knotenversion unter Windows aktualisiert und alles lief gut für mich.

Sourabh
quelle
0

So behebe ich es

  1. Überprüfen und aktualisieren Sie die Pfadvariable (siehe unten zum Aktualisieren der Pfadvariablen)
  2. Löschen Sie node_modules und package-lock.json
  3. Lauf npm install
  4. Lauf npm run start

Wenn dies nicht funktioniert hat, versuchen Sie, die nodejs zu installieren und die Reparatur auszuführen

oder npm Cache bereinigen npm cache clean --force

So aktualisieren Sie die Pfadvariable

  1. Drücken Sie die Windows-Taste
  2. Suchen nach Edit the system environmental variable
  3. Klicke auf Environment Variables...
  4. im unteren Bereich der Systemvariablen (es werden zwei Abschnitte vorhanden sein)
  5. Wählen Sie den PathVariablennamen
  6. Klicken Edit..
  7. Überprüfen Sie, ob C:\Program Files\nodejsdie Liste vorhanden ist, falls nicht, fügen Sie diese hinzu
Salman
quelle
0

hatte ein ähnliches Problem. Ich habe Garn verwendet, um es zu beheben. Ich habe festgestellt, dass in meinen Knotenmodulen keine React-Skripte gefunden wurden, also habe ich beschlossen, sie mit npm herunterzuladen, aber ich scheine auch zu scheitern. Also habe ich Garn ausprobiert (Garn hinzufügen React-Skripte) und das hat den Albtraum gelöst! Hoffe diese Arbeit auch für dich. Viel Spaß beim Debuggen.

Emmanuel Sewah
quelle
-1

In meinem Fall hatte das Problem damit zu tun, dass für einige Dateien, in die die Installation des React-Scripts-Pakets schreiben sollte, nicht genügend Dateiberechtigungen vorhanden waren. Was es löste, war, git bash als Administrator auszuführen und dann npm install --save react-scriptserneut auszuführen .

Adim Victor
quelle
-2

Wenn ich mit React ein neues Projekt erstelle, muss ich zum Installieren der React-Module "npm install" (PowerShell) im ClientApp-Ordner für neue Projekte ausführen (z. B. "C: \ Benutzer \ Chris \ source \ repos \ HelloWorld2 \ HelloWorld2 \") ClientApp "). In der .NET-Kern-WebApp mit React müssen die React-Dateien am richtigen Speicherort installiert sein, damit die React-Befehle ordnungsgemäß funktionieren.

Christopher Upton
quelle