Verabschieden Sie sich von der Müdigkeit von wiederholten Neustarts in der Entwicklung von Node.js! In diesem Artikel werden zwei Methoden eingeführt, mit denen Sie die Entwicklungseffizienz verbessern können.
Kernpunkte
--watch
Option von Node.js verwenden. Diese integrierte Funktion startet die Anwendung immer wieder, wenn sich eine importierte Datei ändert und eine direktere Alternative als Nodemon bietet, ohne dass zusätzliche Module von Drittanbietern erforderlich sind. Es fehlen jedoch die in Nodemon verfügbaren erweiterten Steueroptionen. Wenn Sie Erfahrung mit PHP -Entwicklung haben, wissen Sie, dass Sie den Code jederzeit aktualisieren und den Browser aktualisieren können, um die Änderungen zu testen. Ein Webserver wie Apache oder NGINX erhält Ihre Anfrage für eine PHP -Datei und übergibt den Inhalt an den PHP -Interpreter, um den Code auszuführen. Der Server gibt die generierte Ausgabe (normalerweise HTML oder JSON) an den Anrufbrowser zurück. Mit anderen Worten, der Code wird jedes Mal dynamisch ausgeführt, wenn er angefordert wird.
node.js verfolgt einen anderen Ansatz für Webanwendungen: Ihre JavaScript -Anwendung ist ein Webserver . Durch Ausführen von node index.js
wird die Anwendung initialisiert, alle Module geladen und einen Server starten, der auf eingehende Anforderungen reagieren kann. Das Ändern der Datei wirkt sich nicht auf die Ausgabe der Anwendung aus, da sie bereits im Speicher ausgeführt wird. Um ein Update zu testen, müssen Sie es mit Strg |
node.js stoppen und starten Sie Prozesse neu, können beim Debuggen oder während dieser seltenen fokussierten Stunden sehr frustrierend sein, insbesondere wenn viele Änderungen vorgenommen werden. Glücklicherweise gibt es zwei Lösungen:
node index.js
nodemon
node.js
modus--watch
nodemon ist ein Drittanbieter-Node.js-Modul, das vom JavaScript-Experten Remy Sharp entwickelt wurde. (Er sagte, Sie können es nach Belieben aussprechen!) Ersetzen Sie den Knoten dann durch Nodemon im Befehl Development Startup. Betrachten Sie beispielsweise den folgenden Befehl:
Der obige Befehl sieht jetzt so aus:
npm install -g nodemon
Ihre Anwendung beginnt wie gewohnt, startet jedoch automatisch neu, wenn Sie die Quelldatei bearbeiten und speichern. Es ist nicht erforderlich,
node --inspect index.js arg1 arg2
|
Hinweis: Nodemon ist eine serverseitige Lösung, die keine Browser-Registerkarten aktualisiert, die Sie auf die Anwendung verweisen. Sie können Tools wie BrowserSync oder Esbuild verwenden, um das Nachladen in Echtzeit zu erreichen.
Um Nodemon Hilfe zu erhalten, geben Sie ein:
npm install -g nodemon
Nodemon hat einen eigenen Satz von Befehlszeilenparametern, die Vorrang vor Konfigurationen an anderer Stelle haben. Sie können auch Konfigurationen unter:
definierenpackage.json
in der Datei "nodemonConfig"
des Projekts nodemon.json
Konfigurationsdatei im Projektverzeichnis und/oder nodemon --config <file>
Konfigurationsdatei verwendet, die beim Ausführen nodemon.json
aus der Befehlszeile Die folgenden Parameter/Einstellungen werden häufig verwendet.
Nodemon Monitore JavaScript -Dateien im aktuellen Arbeitsverzeichnis, aber Sie können einen bestimmten Pfad mithilfe von Wildcards in der Befehlszeile explizit festlegen:
node --inspect index.js arg1 arg2
Oder Sie können dies in der Konfigurationsdatei nodemon.json
tun:
nodemon --inspect index.js arg1 arg2
In ähnlicher Weise können Sie den Pfad ignorieren:
nodemon --help
Oder Sie können dies in der Konfigurationsdatei nodemon.json
tun:
nodemon --watch lib1 config/*.json ./index.js
Sie können bestimmte Dateien nach ihren Dateierweiterungen überwachen. Beispielsweise können Sie JS-, CJS-, MJS-, JSON- und NJK -Vorlagendateien wie folgt überwachen:
{ "watch": [ "lib1", "config/*.json" ] }
Oder Sie können dies in der Konfigurationsdatei nodemon.json
tun:
nodemon --ignore lib2 config/build.json ./index.js
In einigen Umgebungen, wie z. B. Docker -Container, die Dateien von montierten Laufwerken lesen, kann die Dateiüberwachung fehlschlagen. Wechseln Sie zum Legacy -Überwachungsmodus Verwenden Sie die Wahl, um zu überprüfen, ob die Datei geändert wurde. Aus der Befehlszeile:
{ "ignore": [ "lib2", "config/build.json" ] }
oder in der Konfigurationsdatei nodemon.json
:
nodemon --ext "js,cjs,mjs,json,njk" ./index.js
Nodemon wartet auf eine Sekunde, bevor er einen Neustart auslöst. Dies ist nützlich, wenn Sie normalerweise viele Dateien gleichzeitig speichern. Sie können die Verzögerung aus der Befehlszeile ändern - beispielsweise auf fünf Sekunden:
{ "ext": "js,cjs,mjs,json,njk" }
oder in der Konfigurationsdatei nodemon.json
(Beachten Sie, dass diese Konfiguration anstelle von Sekunden Millisekunden verwendet):
nodemon --legacy-watch ./index.js
detailliertes Ausgabeprotokoll anzeigen:
{ "legacyWatch": true }
oder in der Konfigurationsdatei nodemon.json
:
nodemon --delay 5 ./index.js
Konfigurationsdatei zum Einstellen einer bestimmten Umgebungsvariablen: nodemon.json
{ "delay": 5000 }
nodemon --verbose ./index.js
definieren: nodemon.json
{ "verbose": true }
--watch
Wenn Sie komplexe Anforderungen an die Anwendungsstart haben, ist Nodemon immer noch das bevorzugte Tool. Wenn Sie jedoch Node.JS 18.11 (Ende 2022 freigegeben) oder später verwenden, bietet es eine experimentelle
npm install -g nodemon
Dies wird:
node --inspect index.js arg1 arg2
node.js wird neu gestartet, wenn sich importierte Datei ändert. Es gibt keine anderen Steuerungsoptionen. Wenn es also nicht zu Ihrem Projekt passt, sollten Sie stattdessen Nodemon verwenden.
Wenn Ihre Erfahrung wächst, werden Sie es zunehmend nützlicher, Node.js -Anwendungen automatisch neu zu starten. Bitte betrachten Sie dies als Teil des Entwicklungsworkflows in allen Projekten.
Das obige ist der detaillierte Inhalt vonVerwenden von Nodemon und beobachten Sie in node.js nach Live -Neustarts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!