Co robi to polecenie „wyrzucenie skryptu reagującego”?

108

Co robi npm run ejectpolecenie? Rozumiem, jakie inne polecenia lubią start, build, test. Ale nie mam pojęcia o wyrzucaniu.

Ishan Patel
źródło
2
jak sprawdzić / zweryfikować, czy to polecenie zostało zastosowane, czy nie?
AlexNikonov

Odpowiedzi:

160

create-act-app hermetyzuje wszystkie moduły npm, których używa wewnętrznie, dzięki czemu Twój plik package.json będzie bardzo czysty i prosty, bez martwienia się o to.

Jeśli jednak chcesz zacząć robić bardziej złożone rzeczy i instalować moduły, które mogą wchodzić w interakcje z modułami, których aplikacja create-react-app używa pod maską, te nowe moduły muszą wiedzieć, co jest dostępne, a co nie, co oznacza, że ​​musisz mieć możliwość tworzenia-reagowania -app un-abstract je.

Na tym właśnie react-scripts ejectpolega. Przestanie ukrywać to, co zostało zainstalowane pod maską, i zamiast tego wyrzuci te rzeczy do pliku package.json twojego projektu, aby wszyscy mogli je zobaczyć.

casieber
źródło
3
Odpowiedź @Sergii jest dokładniejsza. Eject to nie tylko moduł package.json i NPM, ale także inne rzeczy (babel, webpack, eslint itp.) Github.com/facebook/create-react-app/blob/master/packages/…
Bruno Monteiro
69
npm run eject

Uwaga: jest to operacja jednokierunkowa. Kiedy już będziesz eject, nie możesz wrócić!

Jeśli nie jesteś zadowolony z narzędzia do kompilacji i opcji konfiguracji, możesz to zrobić ejectw dowolnym momencie. To polecenie spowoduje usunięcie pojedynczej zależności kompilacji z projektu.

Zamiast tego skopiuje wszystkie pliki konfiguracyjne i zależności przechodnie (Webpack, Babel, ESLint itp.) Bezpośrednio do twojego projektu, abyś miał nad nimi pełną kontrolę. Wszystkie polecenia z wyjątkiem ejectbędą nadal działać, ale będą wskazywać na skopiowane skrypty, aby można było je dostosować. W tym momencie jesteś sam.

Nie musisz nigdy używać eject. Wyselekcjonowany zestaw funkcji jest odpowiedni dla małych i średnich wdrożeń i nie powinieneś czuć się zobowiązany do korzystania z tej funkcji. Rozumiemy jednak, że to narzędzie nie byłoby przydatne, gdybyś nie mógł go dostosować, gdy jesteś na to gotowy.

link do dokumentacji


Alternatywy dla wyrzucania

Wysuwanie pozwala dostosować wszystko, ale od tego momentu musisz samodzielnie zarządzać konfiguracją i skryptami. Może to być trudne, jeśli masz wiele podobnych projektów. W takich przypadkach zamiast wysuwania zalecamy rozwidlenie react-scriptsi inne potrzebne pakiety. W tym artykule szczegółowo opisano, jak to zrobić. Więcej dyskusji znajdziesz w tym numerze.

Sergii
źródło
możemy wrócić, dodając ponownienpm install react-scripts
Ashish Kamble
Jestem całkowicie niezadowolony z obu tych podejść. Masz starożytne zależności bez wyraźnego powodu. Oba podejścia ukrywają te problemy i przenoszą wysiłki programistyczne z projektu na ślepy zaułek. Nic nie zastąpi właściwego zarządzania zależnościami.
Árpád Magosányi