Was macht dieser Befehl "React-Scripts Eject"?

104

Was macht der npm run ejectBefehl? Ich verstehe, was andere Befehle wie Starten, Erstellen, Testen tun. Aber keine Ahnung vom Auswerfen.

Ishan Patel
quelle
2
Wie wird überprüft / verifiziert, ob dieser Befehl angewendet wurde oder nicht?
AlexNikonov

Antworten:

155

create-react-app kapselt alle intern verwendeten npm-Module, sodass Ihre package.json sehr sauber und einfach ist, ohne dass Sie sich darum kümmern müssen.

Wenn Sie jedoch komplexere Aufgaben ausführen und Module installieren möchten, die möglicherweise mit Modulen interagieren, die die Create-React-App verwendet, müssen diese neuen Module wissen, was verfügbar ist, und nicht, was bedeutet, dass Sie Create-React benötigen -app nicht abstrakt sie.

Das ist im Wesentlichen das, was react-scripts ejecttut. Es wird aufhören, das zu verbergen, was unter der Haube installiert ist, und stattdessen diese Dinge in die package.json Ihres Projekts werfen, damit jeder sie sehen kann.

Casieber
quelle
2
@ Sergii Antwort ist genauer. Beim Auswerfen geht es nicht nur um package.json- und NPM-Module, sondern auch um andere Dinge (babel, webpack, eslint usw.). Github.com/facebook/create-react-app/blob/master/packages/…
Bruno Monteiro
66
npm run eject

Hinweis: Dies ist eine Einwegoperation. Sobald Sie eject, können Sie nicht zurück gehen!

Wenn Sie mit dem Build-Tool und den Konfigurationsoptionen nicht zufrieden sind, können Sie dies ejectjederzeit tun. Dieser Befehl entfernt die einzelne Build-Abhängigkeit aus Ihrem Projekt.

Stattdessen werden alle Konfigurationsdateien und die transitiven Abhängigkeiten (Webpack, Babel, ESLint usw.) direkt in Ihr Projekt kopiert, sodass Sie die volle Kontrolle über sie haben. Alle Befehle außer ejectfunktionieren weiterhin, aber sie verweisen auf die kopierten Skripte, damit Sie sie optimieren können. An diesem Punkt bist du alleine.

Sie müssen nie verwenden eject. Der kuratierte Funktionsumfang eignet sich für kleine und mittlere Bereitstellungen, und Sie sollten sich nicht verpflichtet fühlen, diese Funktion zu verwenden. Wir verstehen jedoch, dass dieses Tool nicht nützlich wäre, wenn Sie es nicht anpassen könnten, wenn Sie dazu bereit sind.

Link zur Dokumentation


Alternativen zum Auswerfen

Mit dem Auswerfen können Sie alles anpassen, aber ab diesem Zeitpunkt müssen Sie die Konfiguration und die Skripte selbst verwalten. Dies kann entmutigend sein, wenn Sie viele ähnliche Projekte haben. In solchen Fällen empfehlen wir, anstatt auszuwerfen, react-scriptsund alle anderen Pakete, die Sie benötigen, zu gabeln . Dieser Artikel befasst sich ausführlich mit der Vorgehensweise. Weitere Informationen finden Sie in dieser Ausgabe.

Sergii
quelle
Wir können wieder hinzufügennpm install react-scripts
Ashish Kamble
Ich bin mit beiden Ansätzen völlig unzufrieden. Sie haben alte Abhängigkeiten ohne ersichtlichen Grund. Beide Ansätze verbergen diese Probleme und konzentrieren die Entwicklungsbemühungen vom Projekt auf Sackgassencode. Es gibt keinen Ersatz für ein ordnungsgemäßes Abhängigkeitsmanagement.
Árpád Magosányi