„Reaguj-skrypty” nie są rozpoznawane jako polecenie wewnętrzne ani zewnętrzne

92

Mam projekt Maven, w ramach którego jest sklonowany projekt JavaScript jako podmoduł git. Więc struktura katalogów wygląda mniej więcej tak

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

wewnątrz mojego pliku package.json test wygląda następująco: "test": "react-scripts test --env=jsdom",

ale kiedy próbuję uruchomić test npm to mówi

„Reaguj-skrypty” nie są rozpoznawane jako polecenie wewnętrzne lub zewnętrzne,

Co ciekawe, gdy niezależnie sklonuję projekt javascript, nie otrzymuję tego błędu. Próbowałem uruchomić ponownie npm install.

npm version : 5.5.1

node version : 9.3.0

J Smith
źródło
chociaż od tamtej pory zajmowałem się tym problemem, doceniam, że zwrócił on trochę uwagi i jako taki może być przydatne oznaczenie odpowiedzi jako poprawnej ... otwarta na sugestie społeczności, czyje to byłoby .
J Smith

Odpowiedzi:

78

Jest to błąd dotyczący brakującego pliku skryptów reagowania w katalogu modułów węzła w momencie instalacji.

Sprawdź, czy zależność react-script jest dostępna, czy nie, w pliku package.json

Jeśli nie jest dostępny, dodaj ręcznie za pomocą:

npm install react-scripts --zapisz

Yogesh Borad
źródło
11
NIE rób tego, może to powodować problemy z innymi projektami ... NIE powinieneś instalować skryptów reagowania na całym świecie. Zobacz tutaj: github.com/facebook/create-react-app/issues/…
Rosdi Kasim
5
@RosdiKasim Po przeczytaniu twojego komentarza zrozumiałem mój błąd. Teraz zmieniłem polecenie dla konkretnego projektu zamiast globalnie (-g).
Yogesh Borad
Nic się dla mnie nie zmienia, wciąż ten sam błąd. Uruchamianie polecenia „npm install -react-scripts --save”, nawet jeśli zakończyło się powodzeniem, nie powoduje utworzenia żadnego folderu react-scripts w folderze npm_modules. Jestem na Windows10
Giox
@RosdiKasim, na podstawie twojego komentarza, powinieneś śledzić koniec wątku na Github.
Uruchomiłem
43

Czy próbowałeś:

rm -rf node_modules && npm install

Wycieranie node_modulesnajpierw często rozwiązuje wiele dziwnych, związanych z pakietami problemów, takich jak ten w Node.

Jonny Asmar
źródło
2
tak mam ... bez różnicy ... Na razie musiałem po prostu usunąć podmoduł i wkleić go ręcznie.
J Smith
Hmm, nie widzisz żadnych błędów zarejestrowanych z Twojego, npm installprawda? Spróbuj uruchomić npm install -fi zobacz, czy coś się zmieni. Może to być inny pakiet, którego nie można zainstalować i którego nie można create-react-appcałkowicie zainstalować. Przy -fokazji, wymuszenie instalacji npm nigdy nie jest kompletnym rozwiązaniem ... tylko krokiem rozwiązywania problemów. Jeśli coś się zmieni po uruchomieniu, oznacza to, że wiesz, że coś jest nie tak z jednym z pakietów.
Jonny Asmar
Ponadto możesz chcieć sprawdzić, czy masz plik pod adresem javascript/node_modules/.bin/react-scripts. Jeśli nie, może być kilka różnych przyczyn takiego stanu rzeczy, w tym problemy z uprawnieniami, ograniczenia systemu operacyjnego dotyczące tworzenia dowiązań symbolicznych (wszystko node_moduels/.binjest dowiązaniem symbolicznym generowanym podczas instalacji. Może również oznaczać, że nie masz zainstalowanych skryptów reagujących ... spróbuj bieganie npm install --save react-scriptsi zobacz, czy to pomoże
Jonny Asmar
1
Przejście z MacOS do Windows (Dropbox zsynchronizował cały node_modulesfolder) - tylko usunięcie folderu i ponowna instalacja rozwiązało problem
AS
Tak - to właśnie robi powyższe polecenie. Twój symptom był prawdopodobnie spowodowany wieloma pakietami, które wykonują procedury instalacji warunkowej dla każdego systemu operacyjnego. Linux, Mac i Windows mają sporo rozbieżności z wieloma podstawowymi zależnościami projektowymi.
Jonny Asmar
30

Jeśli react-scriptsjest obecny wpackage.json

Jeśli zobaczysz coś takiego "react-scripts": "2.1.3"w swoim pakage.jsonpliku, po prostu wpisz to polecenie

npm install

Jeśli react-scriptsnie występuje wpackage.json

Jeśli "react-scripts"w Twoim package.jsonpliku nie ma nic podobnego, prawdopodobnie go nie zainstalowałeś.Aby to zrobić, wpisz następujące polecenie, a wszystko będzie gotowe

npm install react-scripts --save

Hadi Mir
źródło
1
Co jeśli mam go w swoim pliku package.json i również go zainstaluję, ale napotkam ten sam problem?
Serob_b
@Serob_b Czasami mam ten sam problem, w takim przypadku po prostu uruchamiam "npm install" i to rozwiązuje problem. lub zawsze możesz usunąć folder node_modules, wpisując rm "-rf node_modules" w terminalu, a następnie uruchom "npm install". mam nadzieję, że to pomoże
Hadi Mir
9

W mojej sytuacji wystąpiły problemy z moim pakietem węzłów. Więc uruchomiłem npm audit fixi rozwiązałem wszystkie problemy

Nguyen Duc Thanh
źródło
9

Miałem ten sam problem. Ale uruchomienie polecenia aktualizacji npm rozwiązało mój problem.

Miraj Khandaker
źródło
To było rozwiązanie. Dzięki.
Dzenis H.
3

naprawiam ten problem :-), po prostu odinstaluj swój node.js i pokaż ukryte pliki

następnie przejdź do „C: \ Users \ yourpcname \ AppData \ Roaming \

następnie usuń foldery „npm” i „npm-cache”

i zainstaluj nową wersję node.js.

Sandro Cagara
źródło
2
To naprawdę nie jest rozwiązanie.
Phani Rithvij
Ten pracował dla mnie.
UA
2

Reaguj skrypty nie jest rozpoznawany, ponieważ polecenie wewnętrzne lub zewnętrzne jest związane z npm.

Zaktualizowałbym wszystkie moje zależności w moich plikach package.json do najnowszych wersji w katalogu głównym i katalogu klienta, jeśli ma to zastosowanie. Możesz to zrobić, używając gwiazdki „*” zamiast określania konkretnego numeru wersji w plikach package.json dla swoich zależności.

Na przykład:

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

Następnie upewniłbym się, że wszystkie pliki package-lock.json zostały usunięte, a następnie uruchomiłem instalacje npm i yarn install zarówno w katalogu głównym, jak i katalogu klienta, jeśli ma to zastosowanie.

Następnie powinieneś być w stanie uruchomić kompilację przędzy, a następnie użyć startu przędzy do uruchomienia aplikacji.

Ahmedakhtar11
źródło
To zła rada. Korzystanie *z numerów wersji jest problematyczne, ponieważ może powodować instalowanie różnych wersji pakietów w różnych systemach. Użyj zablokowanych numerów wersji i zaktualizuj je w razie potrzeby
Dana Woodman
Tak, wszystko może pójść źle w celach produkcyjnych, ale to tylko pomysł do celów testowych.
Ahmedakhtar11
2

Napotkałem ten sam problem, chociaż używam przędzy.

Pracowały dla mnie:

yarn install 
yarn start
Papież Franciszek
źródło
1

W przypadku zmiany aplikacji przenośnych

package.json

następująco

"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
źródło
0

Wypróbowałem wiele rozwiązań tego problemu znalezionych w Internecie, ale w moim przypadku nic nie działało, z wyjątkiem ponownej instalacji NVM dla Windows (którego używam do zarządzania wieloma wersjami Node). W instalatorze wykrywa zainstalowane wersje Node i pyta użytkownika, czy życzy sobie, aby NVM nimi sterował. Powiedziałem tak, a NVM naprawił wszystkie problemy ze ścieżką. W rezultacie wszystko działało jak wcześniej. Ten problem może mieć wiele przyczyn, ale uszkodzona PATH jest zdecydowanie jedną z nich i (ponowna) instalacja poprawek NVM PATH.

Tomáš Hübelbauer
źródło
0

To dość stare pytanie, ale może być pomocne w przyszłości. Usuń folder node_modules i ponownie uruchom instalację npm. Pracował dla mnie.

Koder90
źródło
0

W moim przypadku edytowałem pliki w systemie Linux, gdzie miałem zainstalowany węzeł 14.0.5, po ponownym uruchomieniu systemu Windows, w którym miałem węzeł 14.0.3, otrzymałem ten sam błąd. Więc zaktualizowałem wersję węzła w systemie Windows i wszystko poszło dobrze.

Sourabh
źródło
0

Tak to naprawiam

  1. Sprawdź i zaktualizuj zmienną ścieżki (zobacz poniżej, jak zaktualizować zmienną ścieżki)
  2. Usuń node_modules i package-lock.json
  3. biegać npm install
  4. biegać npm run start

jeśli to nie zadziałało, spróbuj zainstalować nodejs i uruchom naprawę

lub wyczyść pamięć podręczną npm npm cache clean --force

Aby zaktualizować zmienną ścieżki

  1. naciśnij klawisz Windows
  2. Szukaj Edit the system environmental variable
  3. Kliknij Environment Variables...
  4. w dolnej sekcji zmiennej systemowej (będą dwie sekcje)
  5. Wybierz Pathnazwę zmiennej
  6. Kliknij Edit..
  7. Sprawdź, czy jest C:\Program Files\nodejsna liście, jeśli nie, dodaj to
Salman
źródło
0

miał podobny problem ... użyłem przędzy, aby to naprawić. Zauważyłem, że react-scripts nie zostało znalezionych w moich modułach węzła, więc zdecydowałem się pobrać je za pomocą npm, ale wydaje mi się, że też zawodzi. więc wypróbowałem przędzę (przędza dodaj skrypty reakcji) i to rozwiązało koszmar! Mam nadzieję, że to zadziała również dla Ciebie. Miłego debugowania.

Emmanuel Sewah
źródło
-1

W moim przypadku problem polegał na tym, że nie posiadałem wystarczających uprawnień do niektórych plików, do których miała pisać instalacja pakietu react-scripts. Rozwiązaniem było uruchomienie git bash jako administrator, a następnie ponowne uruchomienie npm install --save react-scripts.

Adim Victor
źródło
-2

Kiedy tworzę nowy projekt za pomocą Reacta, aby zainstalować moduły React, muszę uruchomić "npm install" (PowerShell) z folderu nowych projektów ClientApp (np. "C: \ Users \ Chris \ source \ repos \ HelloWorld2 \ HelloWorld2 \ ClientApp ”). .NET core WebApp z Reactem musi mieć pliki React zainstalowane we właściwej lokalizacji, aby polecenia React działały poprawnie.

Christopher Upton
źródło