Der Befehl nodemon wird im Terminal für den Knoten js server nicht erkannt

86

Ich mache das Server-Setup von node.js über https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens . Ich bin neu in node.js. Ich installiere npm install nodemon --save. Aber wenn ich den Server damit laufen lasse nodemon server.js.
Im Terminal wird Folgendes angezeigt:

nodemon wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt

Geben Sie hier die Bildbeschreibung ein

node server.jsBefehl funktioniert und hat den Server gestartet, aber nodemonBefehl funktioniert nicht.

Ich habe den Knoten js Server über https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens Video eingerichtet.

Ich weiß nicht, warum es nicht funktioniert. Ich habe einen Befehl für den Installationsknoten ausprobiert.

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

npm install -g --force nodemon

Ich habe einen Link gesehen, auf dem ich nodemon nicht global installieren kann. "Nodemon" wird nicht erkannt . Ich weiß jedoch nicht, wie ich den Pfad festlegen soll, da sich mein Projekt im Laufwerk D befindet.

Ich möchte rennen nodemon server.js. Wenn jemand eine Idee hat, teilen Sie diese bitte mit. Danke im Voraus.

Martin
quelle

Antworten:

208

Sie müssen es global installieren

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

Und dann wird es auf dem Pfad verfügbar sein (ich sehe jetzt, dass Sie dies versucht haben und es nicht funktioniert hat, Ihr Pfad könnte durcheinander sein)

Wenn Sie die lokal installierte Version verwenden möchten, anstatt sie global zu installieren, können Sie ein Skript in Ihrer package.json erstellen

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

und dann verwenden

npm run serve

optional bei Verwendung von Garn

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

npm sucht dann in Ihrem lokalen Ordner node_modules, bevor Sie in Ihren globalen Modulen nach dem Befehl suchen

ndonohoe
quelle
Was funktioniert nicht? Das Skript mit lokaler Installation?
Ndonohoe
Yaa. Ich habe nodemon installiert. Ich habe ein Skript in die Datei package.json geschrieben. Und nach dem Lauf npm laufen dienen. Führen Sie dann nodemon server.js aus, aber es funktioniert nicht.
Martin
package.json: {"scripts": {"serve": "nodemon server.js"}, "name": "node-site", "version": "1.0.0", "description": "", " main ":" server.js "," scripts ": {" test ":" echo \ "Fehler: kein Test angegeben \" && exit 1 "}," author ":" "," license ":" ISC ", "Abhängigkeiten": {"express": "^ 4.14.0", "nodemon": "^ 1.11.0"}, "devDependencies": {"gulp-nodemon": "^ 2.2.1", "nodemon": "^ 1.11.0"}}
Martin
Können Sie klarstellen, dass "nicht funktioniert"? Gibt es einen Fehler? Passiert nichts
Ndonohoe
Es kann sein, dass Sie zwei Sätze von Skripten haben, Sie müssen alle Skripte in einem
Skriptobjekt haben
31
  1. Installieren Sie nodemon global:

    C:\>npm install -g nodemon
    
  2. Präfix abrufen:

    C:\>npm config get prefix
    

    Sie erhalten folgende Ausgabe in Ihrer Konsole:

    C:\Users\Family\.node_modules_global
    

    Kopiere es.

  3. Pfad festlegen.
    Gehen Sie zu Erweiterte Systemeinstellungen → Umgebungsvariable → Klicken Sie auf Neu (unter Benutzervariablen) → Das Popup-Formular wird angezeigt → Übergeben Sie die folgenden Werte:

    variable name = path,
    variable value = Copy output from your console
    
  4. Führen Sie jetzt Nodemon aus:

    C:\>nodemon .
    
Raj Kumar
quelle
Das funktioniert!! Das war es, wonach ich gesucht habe. Vielen Dank
yashjain12yj
das hat bei mir funktioniert. Eigentlich habe ich Windows und musste die Umgebungsvariablen reparieren. Danke :)
Laveena
21

Schreiben Sie zuerst npm install --save nodemon und dann in package.json Folgendes

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

dann schreibe

npm run server
Alok Prusty
quelle
Das hat funktioniert! Danke vielmals. Nur eine Abfrage, nodemon verhindert, dass wir die Serverdatei neu starten, aber wir müssen den Browser noch aktualisieren. Kann der Browser wie in einem Winkel selbst aktualisiert werden?
Rahul Sharma
8

Ich stand vor dem gleichen Problem. Ich hatte nodemon als dev-Abhängigkeit installiert und als ich versuchte, den Server zu starten, gab es die Meldung, dass

nodemon wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt

Dann habe ich es global installiert und versucht, den Server zu starten und es hat funktioniert!

npm install -g nodemon
adityaekawade
quelle
6

Muss es global installiert werden? Müssen Sie einfach laufen können nodemon server.js? Wenn nicht, können Sie es jederzeit einfach aus Ihrem lokalen Projektverzeichnis aufrufen. Sollte hier sein:

node_modules/.bin/nodemon
Larry Turtis
quelle
Dies ist hilfreich für mich, um meine NodeJS-API über ein Shell-Skript auszuführen. Vielen Dank!
Nam G VU
4

Da das Knotenpräfix nicht in der Variablen PATH ENV enthalten ist, wird keines der global installierten Module erkannt. Bitte versuchen Sie dies. Öffnen Sie die cmd-Eingabeaufforderung npm config get prefix und fügen Sie den resultierenden Pfad an die PATH env-Variable an. Jetzt sollten Sie nodemon von jedem Ort aus ausführen können. versuchen Sie diesen Link und folgen it.fixing npm Berechtigungen https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npms-default-directory-to-another-directory

Vighanesh Mandavkar
quelle
In Ihrem Link finden Sie die Anweisungen für Linux. Haben Sie etwas für Windows?
Jose Rojas
4

Diese Zeile hat mein Problem in CMD gelöst:

npm install --save-dev nodemon
Bakos Bence
quelle
3
Die globale Nodemon-Installation hat bei mir nicht funktioniert, aber diese hat funktioniert :)
Codemirror
4

Das mag zu spät kommen, aber besser etwas sagen :)

Wenn Sie das von Ihnen verwendete nodemon globbaly nicht installieren möchten npx, wird das Paket zur Laufzeit installiert und verhält sich wie ein globales Paket (denken Sie daran, dass es derzeit nur verfügbar ist und nicht global existiert!).

Alles was Sie brauchen ist npx nodemon server.js.

Yaron Miro
quelle
3

Um nodemon zu verwenden, müssen Sie es global installieren.

Für Windows

npm i -g nodemon

Für Mac

sudo npm i -g nodemon

Wenn Sie es nicht global installieren möchten, können Sie es lokal in Ihrem Projektordner installieren, indem Sie den Befehl ausführen npm i nodemon . Es wird einen Fehler wie diesen geben, wenn es lokal ausgeführt wird:

nodemon: Der Begriff 'nodemon' wird nicht als Name von a erkannt
Cmdlet, Funktion, Skriptdatei oder bedienbares Programm. Prüfe die Rechtschreibung
des Namens oder wenn ein Pfad enthalten war, überprüfen Sie, ob der Pfad ist
korrigieren und erneut versuchen.

Um diesen Fehler zu entfernen, öffnen Sie die package.json Datei und fügen Sie sie hinzu

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

und danach einfach den Befehl ausführen

npm run server

und Ihr Nodemon wird richtig funktionieren.

Amit Kumar
quelle
1
Falsch. Ihr Skript sollte {"server": "nodemon server.js"}
joedotnot
1

Hatte gerade das gleiche Problem nach dem Erstellen eines neuen Benutzerprofils auf meinem Entwicklungscomputer.

Das Problem war, dass ich die Konsole (Eingabeaufforderung \ Powershell ISE) nicht als Administrator ausgeführt habe.

Das Ausführen als Administrator hat dieses Problem für mich gelöst.

Jim Jimson
quelle
1

Ich habe versucht, den Nodemon global zu installieren, aber das hat bei mir nicht funktioniert. Wenn ich versuche, es auszuführen, wird mir immer der Fehler angezeigt:

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. Ich habe zwei Lösungen dafür gefunden

Lösung 1:

Was ich versucht habe, ist, die "Skripte" in der Datei package.json zu aktualisieren und dort habe ich hinzugefügt

"server": "nodemon app.js"

über der Codezeile und danach

npm run server

Lösung 2:

  1. Drücken Sie die Windows-Taste.

  2. Geben Sie "Pfad" in das Suchfeld ein und wählen Sie "Systemumgebungsvariablen bearbeiten".

  3. Klicken Sie unten auf "Umgebungsvariablen".

  4. Doppelklicken Sie im Abschnitt "Systemvariablen" auf die Variable "Pfad".

  5. Klicken Sie rechts auf "Neu".

  6. Kopieren Sie diese und fügen Sie sie in das Feld ein (ersetzen Sie [Benutzername]):

C: \ Benutzer [Benutzername] \ AppData \ Roaming \ npm

  1. Starten Sie Ihr Terminal und VSCode neu.

  2. Geben Sie dann ein nodemon app.jsGeben Sie , um den Knoten auszuführen

Ich habe Lösung 2 angewendet, da wir nur nodemon [filename.js] ausführen müssen.

Shubham Kumar
quelle
1

Nodemon muss nicht global installiert werden. Führen Sie einfach diesen npx-Knoten <scriptname.js> aus . Das ist es.

Pritam Ghosh
quelle
0

Sie können Ihre Knoten-App nodemon ausführen, indem Sie sie einfach eingeben. Zuerst index.js ausführen. Sie können Ihren Einstiegspunkt einfach in diese Datei einfügen.

Wenn Sie nodemon nicht installiert haben, müssen Sie es zuerst von installieren

npm install -g nodemon

Wenn Sie einen Berechtigungsfehler haben, verwenden Sie

sudo npm install -g nodemon

Sie können überprüfen, ob nodemon vorhanden ist oder nicht

nodemon -v
Shraddha Goel
quelle
0

Führen Sie diesen Befehl aus:

npm install nodemon -g

Jetzt wird der Nodemon installiert, aber das Problem in meinem Fall ist, dass er den Nodemon woanders installiert. Ich habe den Nodejs-Pfad von (ProgramFiles (x86)) hinzugefügt, aber das hat nicht funktioniert, also habe ich eine andere Lösung gefunden.

  • Führen Sie den obigen Befehl aus
  • Während der Installation wird ein Pfad angezeigt, in dem nodemon installiert ist. Dann [Gehen Sie bitte zum folgenden Link, um den Pfad anzuzeigen] [1]

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

  • Kopieren Sie den Pfad auf npm und setzen Sie ihn auf Umgebungsvariable
  • Versuchen Sie nun den folgenden Befehl, hoffentlich wird er ausgeführt

      nodemon YourAppName.js
Junaid
quelle
0

Alle oben genannten Optionen sind fehlgeschlagen, ich habe die dauerhafte Lösung dafür. Fügen Sie die folgende Zeile in package.json unter Abhängigkeiten und hinzu run npm install. Dadurch wird das nodemon-Paket zu node_modules hinzugefügt, und los geht's, genießen Sie die Codierung.

"nodemon": "^1.17.*"
Amol Kamble
quelle
3
Willkommen bei Stack Overflow. Wenn Sie eine ältere Frage mit vorhandenen Antworten beantworten, ist es hilfreich zu erklären, welche neuen Informationen Ihre Antwort bringt. Diese Antwort scheint keine globale Installation anzuzeigen, sie verweist auf eine bestimmte Version (daher altert sie nicht gut) und beantwortet die gestellte Frage nicht, da sie nicht zeigt, wie die aktiviert werden kann Befehl.
Jason Aller
0

Einfach global installieren

 npm install -g  nodemon

Es hat bei mir unter Windows 10 funktioniert.

nodemon app.js
Prathamesh Mehr
quelle
0

Die Standardausführungsrichtlinie des Cmdlets Set-ExecutionPolicy lautet "Eingeschränkt für Windows". Sie können versuchen, nodemon zu installieren, indem Sie diese Richtlinie auf Uneingeschränkt setzen.

Befehl ausführen: Set-ExecutionPolicy Unrestricted und dann versuchen, nodemon zu installieren und Befehl ausführen:nodemon -v

Mayur
quelle
0

Ich habe auf diese Weise behoben

  1. Deinstallieren Sie den vorhandenen lokalen Knoten

    npm deinstalliere nodemon

  2. Installieren Sie es erneut global.

    npm i -g nodemon

Saad Abbasi
quelle
-2

Entfernen Sie nodemon, da es sich um eine Entwicklungsabhängigkeit handelt, und verwenden Sie stattdessen den Knoten.

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

Das hat bei mir funktioniert.

Atharv Upadhyay
quelle
Beantwortet die Frage nicht. Knoten und Knoten haben unterschiedliche Zwecke.
Joedotnot
es ist etwas anderes. Für nodemon sollte es "server" sein: "nodemon app.js"
Shubham Kumar