TLDR: Deinstallieren Sie das globale Paket mit npm uninstall -g create-react-app
und generieren Sie neue Reaktions-Apps mit npx create-react-app app
.
Problem
Sie verwenden eine ältere Version create-react-app
, die Sie global mit npm installiert haben. Dascreate-react-app
Befehl ruft dieses globale Paket auf.
Sie könnten sich vergewissert haben , dass Sie eine veraltete Version , indem Sie wurden mit npm outdated -g create-react-app
oder Vergleichen create-react-app --version
mit npm view create-react-app
.
Die Tatsache, dass die Version von react-scripts
auf dem neuesten Stand war, hat nichts mit der Version des Pakets zu tun, das die App ( create-react-app
) bootet, die die neuesten Versionen der verwendeten Pakete abruft ( react-scripts
in diesem Fall).
Lösung
Wenn Sie den create-react-app
Befehl weiterhin verwenden möchten , müssen Sie das globale Paket mit aktualisieren npm update -g create-react-app
. Beachten Sie, dass Sie dies regelmäßig tun möchten, um es auf dem neuesten Stand zu halten. Sie werden feststellen, dass create-react-app
dies nicht empfohlen wird (in den Protokollen Ihrer Installation vermerkt).
Ein besserer Ansatz wäre, die globale Installation vollständig zu löschen ( npm uninstall -g create-react-app
) und stattdessen zu verwenden, npx
damit jedes Mal die neueste Version des Pakets abgerufen wird (weitere Informationen finden Sie unternpx
unten).
Sie sollten bestätigen, dass es global deinstalliert wurde, indem Sie versuchen create-react-app
, sicherzustellen, dass der Befehl "nicht gefunden" wird.
Probleme bei der Deinstallation?
Sie können debuggen, wo es installiert wurde which create-react-app
. Wenn Sie Probleme bei der Deinstallation haben, befinden sich möglicherweise mehrere Versionen von node / npm auf Ihrem Computer (aus mehreren Installationen oder weil Sie einen Knotenversionsmanager wie z. B. verwenden nvm
). Dies ist ein separates Problem, das ich hier nicht ansprechen werde, aber diese Antwort enthält einige Informationen .
Ein schneller nuklearer Ansatz wäre, es rm -rf
auf dem zurückkehrenden Pfad gewaltsam zu entfernen ( ) which create-react-app
.
Ergänzung
Globale npm-Pakete und der npx
Befehl
$ NPM_PACKAGE_NAME
verwendet immer die global installierte Version des Pakets, unabhängig davon, in welchem Verzeichnis Sie sich befinden.
$ npx NPM_PACKAGE_NAME
verwendet die erste Version des Pakets, die beim Suchen vom aktuellen Verzeichnis zum Stammverzeichnis gefunden wird:
- Wenn Sie das Paket in Ihrem aktuellen Verzeichnis haben, wird es das verwenden.
- Andernfalls wird das Paket in einem Verzeichnis verwendet, das übergeordnet zu Ihrem aktuellen Verzeichnis ist, und es verwendet das erste, das es findet.
- Andernfalls wird das Paket verwendet, wenn Sie es global installiert haben.
- Andernfalls wird das Paket vorübergehend installiert, verwendet und anschließend verworfen, wenn Sie es überhaupt nicht haben. - Dies ist der beste Weg, um sicherzustellen, dass das Paket auf dem neuesten Stand ist .
Weitere Informationen zu npx finden Sie in dieser Antwort .
Verwenden npx
mitcreate-react-app
create-react-app
Es gibt einige spezielle Befehle / Aliase zum Erstellen einer Reaktions-App (anstelle von npx
), die für dieses Paket spezifisch sind ( yarn create react-app
, npm init react-app
), aber npx create-react-app
genauso funktionieren wie bei anderen Paketen.
yarn
vs npm
globale Installationen
Garn speichert globale Installationen in einem anderen Ordner als npm
, weshalb yarn create react-app
dies ohne Deinstallation des globalen npm-Pakets sofort funktionieren würde (was Garn betrifft, wurde das Paket nicht installiert).
Dies ist jedoch nur eine vorübergehende Lösung, da Sie bei der Verwendung der Create React App immer Garn anstelle von npm verwenden müssen.