Polecenie nodemon nie jest rozpoznawane w terminalu dla serwera node js


86

Robię konfigurację serwera node.js z https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens . Jestem nowy w node.js. Instaluję npm install nodemon --save. Ale kiedy uruchamiam serwer z tym nodemon server.js.
W terminalu pokazującym:

nodemon nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy

wprowadź opis obrazu tutaj

node server.jspolecenie działa i uruchomiło serwer, ale nodemonpolecenie nie działa.

Skonfigurowałem serwer węzła js z https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens wideo.

Nie wiem, dlaczego to nie działa. Próbowałem użyć polecenia dla programu instalacyjnego.

npm install -g nodemon 
npm install -g nodemon --save 
npm install --save-dev nodemon 
npm install -g nodemon@debug 

npm install -g --force nodemon

Widziałem jedno łącze, którego nie mogę zainstalować globalnie nodemon, „nodemon” nie został rozpoznany , ale nie wiem, jak ustawić ścieżkę z powodu lokalizacji mojego projektu na dysku D.

Chcę biec nodemon server.js. Jeśli ktoś ma pomysł, podziel się nim. Z góry dziękuję.

Odpowiedzi:


208

Musisz go zainstalować globalnie

npm install -g nodemon
# or if using yarn
yarn global add nodemon

A potem będzie dostępny na ścieżce (widzę teraz, że próbowałeś tego i nie zadziałało, twoja ścieżka może być pomieszana)

Jeśli chcesz użyć wersji zainstalowanej lokalnie, zamiast instalować ją globalnie, możesz utworzyć skrypt w swoim pliku package.json

"scripts": {
    "serve": "nodemon server.js"
  },

a następnie użyj

npm run serve

opcjonalnie, jeśli używasz przędzy

# without adding serve in package.json
yarn run nodemon server.js
# with serve script in package.json
yarn run serve

npm sprawdzi wtedy twój lokalny folder node_modules przed wyszukaniem polecenia w twoich modułach globalnych


Co nie działa? Skrypt korzystający z instalacji lokalnej?
ndonohoe

Yaa. Zainstalowałem nodemona. Umieściłem skrypt w pliku package.json. A po biegu npm run służyć. W końcu uruchom nodemon server.js, ale nie działa.
Martin

package.json: {"scripts": {"serve": "nodemon server.js"}, "name": "node-site", "version": "1.0.0", "description": "", " main ":" server.js "," scripts ": {" test ":" echo \ "Błąd: nie określono testu \" && wyjście 1 "}," autor ":" "," licencja ":" ISC ", "zależności": {"express": "^ 4.14.0", "nodemon": "^ 1.11.0"}, "devDependencies": {"gulp-nodemon": "^ 2.2.1", "nodemon": "^ 1.11.0"}}
Martin

Czy możesz wyjaśnić „nie działa”? Czy jest błąd? Nic się nie dzieje?
ndonohoe

Może tak być, ponieważ masz tam dwa zestawy skryptów, musisz mieć wszystkie skrypty w jednym obiekcie skryptów
ndonohoe

31
  1. Zainstaluj nodemon globalnie:

    C:\>npm install -g nodemon
    
  2. Pobierz prefiks:

    C:\>npm config get prefix
    

    W konsoli otrzymasz następujące wyniki:

    C:\Users\Family\.node_modules_global
    

    Skopiuj to.

  3. Ustaw ścieżkę.
    Idź do Zaawansowane ustawienia systemu → Zmienna środowiskowa → Kliknij Nowy (w Zmiennych użytkownika) → Wyświetli się wyskakujący formularz → Przekaż następujące wartości:

    variable name = path,
    variable value = Copy output from your console
    
  4. Teraz uruchom Nodemon:

    C:\>nodemon .
    

To działa!! To było to, czego szukałem. Dziękuję
yashjain12yj

to działało dla mnie. Właściwie mam okna i potrzebowałem naprawić zmienne środowiskowe. Dzięki :)
Laveena

21

Najpierw napisz npm install --save nodemon, a następnie w package.json napisz co następuje

"scripts": {
    "server": "nodemon server.js"
  },

następnie napisz

npm run server

To zadziałało! Wielkie dzięki. Tylko zapytanie, nodemon uniemożliwia nam ponowne uruchomienie pliku serwera, ale wciąż musimy odświeżyć przeglądarkę. Czy przeglądarka może samodzielnie odświeżyć się, tak jak robi to w trybie angular?
Rahul Sharma

8

Miałem ten sam problem. Zainstalowałem nodemona jako zależność od deweloperów i kiedy próbowałem uruchomić serwer, otrzymałem taką wiadomość

nodemon nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy

Następnie zainstalowałem go globalnie i próbowałem uruchomić serwer i zadziałało!

npm install -g nodemon

6

Czy trzeba go zainstalować na całym świecie? Czy musisz po prostu biegać nodemon server.js? Jeśli nie, zawsze możesz po prostu wywołać go z lokalnego katalogu projektu. Powinien tu być:

node_modules/.bin/nodemon

Jest to pomocne dla mnie przy uruchamianiu mojego interfejsu API nodejs ze skryptu powłoki. Wielkie dzięki!
Nam G VU

4

Ponieważ przedrostek węzła nie znajduje się w zmiennej PATH ENV, żaden z zainstalowanych globalnie modułów nie jest rozpoznawany. Spróbuj tego. Otwórz znak zachęty polecenia npm config get prefiks i dołącz wynikową ścieżkę do zmiennej PATH env. Teraz powinieneś być w stanie uruchomić nodemona z dowolnego miejsca. wypróbuj ten link i postępuj zgodnie z nim. naprawianie uprawnień npm https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npms-default-directory-to-another-directory


W twoim linku znajdują się instrukcje dla Linuksa, czy masz coś dla Windows?
Jose Rojas


4

To może przyjść za późno, ale lepiej coś powiedzieć :)

Jeśli nie chcesz instalować nodemon globbaly, możesz użyć npx , instaluje on pakiet w czasie wykonywania i zachowuje się jak pakiet globalny (pamiętaj, że jest dostępny w danym momencie i nie istnieje globalnie!).

Więc wszystko, czego potrzebujesz, to npx nodemon server.js.

  • npxmoże być używany po wyjęciu z pudełka od npm@5.2.0wersji i nowszych.

3

Aby używać nodemona, musisz zainstalować go globalnie.

Dla Windowsa

npm i -g nodemon

Dla Maca

sudo npm i -g nodemon

Jeśli nie chcesz instalować go globalnie, możesz zainstalować go lokalnie w folderze projektu, uruchamiając polecenie npm i nodemon . Wystąpi błąd podobny do tego, jeśli zostanie uruchomiony lokalnie:

nodemon: Termin „nodemon” nie jest rozpoznawany jako nazwa pliku
polecenia cmdlet, funkcja, plik skryptu lub program operacyjny. Sprawdź pisownię
nazwy lub jeśli ścieżka została uwzględniona, sprawdź, czy jest to ścieżka
popraw i spróbuj ponownie.

Aby usunąć ten błąd, otwórz package.json plik i dodaj

"scripts": {
     "server": "nodemon server.js"
 },

a potem po prostu uruchom polecenie

npm run server

a twój nodemon zacznie działać poprawnie.


1
Źle. Twój skrypt powinien mówić {"server": "nodemon server.js"}
joedotnot

1

Po prostu miałem ten sam problem po utworzeniu nowego profilu użytkownika na moim komputerze deweloperskim.

Problem polegał na tym, że nie uruchamiałem konsoli (wiersz poleceń \ powershell ISE) jako administrator.

Uruchomienie jako administrator rozwiązało ten problem za mnie.


1

Próbowałem zainstalować nodemona globalnie, ale to nie zadziałało. za każdym razem, gdy próbuję uruchomić, zawsze wyświetla mi się błąd:

nodemon : The term 'nodemon' is not recognized as the name of a
cmdlet, function, script file, or operable program. Check the spelling
of the name, or if a path was included, verify that the path is
correct and try again.

2. Znalazłem na to dwa rozwiązania

rozwiązanie 1:

Próbowałem zaktualizować „skrypty” w pliku package.json i tam dodałem

"server": "nodemon app.js"

powyżej linii kodu i później

npm run server

Rozwiązanie 2:

  1. Naciśnij klawisz Windows.

  2. Wpisz „Ścieżka” w polu wyszukiwania i wybierz „Edytuj zmienne środowiskowe systemu”

  3. Kliknij „Zmienne środowiskowe” u dołu.

  4. W sekcji „Zmienne systemowe” kliknij dwukrotnie zmienną „Ścieżka”.

  5. Kliknij „Nowy” po prawej stronie.

  6. Skopiuj i wklej to w polu (zastąp [Nazwa użytkownika]):

C: \ Users [nazwa użytkownika] \ AppData \ Roaming \ npm

  1. uruchom ponownie terminal i VSCode.

  2. Następnie wpisz, nodemon app.jsaby uruchomić nodemon

zastosowałem rozwiązanie 2, ponieważ wystarczy uruchomić nodemon [nazwa_pliku.js]


1

Nie ma potrzeby globalnej instalacji nodemona. Po prostu uruchom ten npx nodemon <scriptname.js> . Otóż ​​to.


0

Możesz uruchomić aplikację node, po prostu wpisując nodemon It First run index.js Możesz łatwo umieścić punkt wejścia w tym pliku.

Jeśli nie zainstalowałeś nodemona, musisz go najpierw zainstalować przez

npm install -g nodemon

Jeśli wystąpił błąd dotyczący uprawnień, użyj

sudo npm install -g nodemon

Możesz sprawdzić, czy nodemon istnieje, czy nie, przez

nodemon -v

0

Uruchom to polecenie:

npm install nodemon -g

Teraz zainstaluje nodemona, ale problem z moim przypadkiem polega na tym, że instaluje nodemon w innym miejscu Dodałem ścieżkę Nodejs z (ProgramFiles (x86)), ale to nie zadziałało, więc znalazłem inne rozwiązanie.

  • Uruchom powyższe polecenie
  • Podczas instalacji pojawi się ścieżka, w której jest zainstalowany nodemon, a następnie [Proszę przejść do poniższego linku, aby zobaczyć ścieżkę] [1]

    [1]: https://i.stack.imgur.com/ld2sU.png

  • Skopiuj ścieżkę do npm i ustaw ją na zmienną środowiskową
  • Teraz wypróbuj poniższe polecenie, miejmy nadzieję, że zadziała

      nodemon YourAppName.js

0

Wszystkie powyższe opcje zawiodły, mam na to trwałe rozwiązanie. Dodaj poniższy wiersz w pliku package.json w obszarze zależności i run npm install. Spowoduje to dodanie pakietu nodemon do node_modules i gotowe, ciesz się kodowaniem.

"nodemon": "^1.17.*"

3
Witamy w Stack Overflow. Odpowiadając na starsze pytanie istniejącymi odpowiedziami, warto wyjaśnić, jakie nowe informacje przynosi twoja odpowiedź. Ta odpowiedź nie wydaje się pokazywać instalacji globalnej, odwołuje się do konkretnej wersji (więc nie będzie się starzeć) i nie odpowiada na pytanie, które zostało zadane, ponieważ nie pokazuje, jak włączyć Komenda.
Jason Aller


0

Domyślną zasadą wykonywania polecenia cmdlet Set-ExecutionPolicy jest Ograniczona dla systemu Windows. Możesz spróbować zainstalować nodemon, ustawiając tę ​​zasadę na Unrestricted.

wykonaj polecenie: Set-ExecutionPolicy Unrestricted a następnie spróbuj zainstalować nodemon i wykonaj polecenie:nodemon -v


0

Naprawiłem w ten sposób

  1. odinstaluj istniejący lokalny nodemon

    npm odinstaluj nodemon

  2. zainstaluj go ponownie na całym świecie.

    npm i -g nodemon


-2

Usuń nodemon, ponieważ jest to zależność od deweloperów i użyj węzła zamiast niego.

"scripts": {
     "start": "node server.js"
 },

To zadziałało dla mnie.


Nie odpowiada na pytanie. node i nodemon mają różne cele.
joedotnot

to inna sprawa. W przypadku nodemona powinno to być „server”: „nodemon app.js”
Shubham Kumar
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.