So führen Sie das Startskript mit Nodemon aus

88

Wie kann ich das Startskript aus einer package.json- Datei mit Nodemon ausführen?

Citronen
quelle
Sind Sie sicher, dass Sie ein Startskript von package.json ausführen können? Denn soweit ich weiß, soll package.json alle Ihre Abhängigkeiten auflisten und nodemon Ihren Prozess am Laufen halten. Ich bin mir nicht ganz sicher, was Sie hier andeuten?
Saras Arya

Antworten:

139

Dies ist ein einfacher Befehl dafür

nodemon --exec npm start
Ashutosh Jha
quelle
Was ist, wenn ich nur Tests ausführen muss, ohne die App auszuführen? Ihre Lösung führt beide aus.
Sergey
1
Dies wird ausgeführt, npm startaber der Knotenserver wird für mich nicht gestartet. Wie würde er wissen, wo sich server.js befindet?
Sonic Soul
38

Im Paket json:

{
  "name": "abc",
  "version": "0.0.1",
  "description": "my server",
  "scripts": {
    "start": "nodemon my_file.js"
  },
  "devDependencies": {
    "nodemon": "~1.3.8",
  },
  "dependencies": {

  }
}

Dann können Sie vom Terminal aus verwenden npm start

Nodemon-Installation: https://www.npmjs.com/package/nodemon

Murat Ozgul
quelle
1
Entschuldigung, suchen Sie nach einer Möglichkeit, das Startskript mit nodemon auszuführen, und führen Sie nodemon nicht im Startskript aus. Entschuldigung, wenn das nicht klar war.
Citronen
6
Wird npm startdie Produktion nicht aus Mangel an Nodemon scheitern?
Ripper234
2
npm run startnichtnpm start
M. Dhaouadi
1
Ich bin ein Anfänger mit npm. Ich verstehe nicht, warum wir das Startskript angeben müssen, während wir nodemon sofort verwenden können. Ich installiere nodemon einfach mit npm und benutze es direkt ohne Angabe eines Skripts und es funktioniert perfekt.
Hokhy Tann
@ M.Dhaouadi npm startist ein Alias ​​fürnpm run start
George
16

Ich habe eine TypeScript-Datei mit dem Namen "server.ts". Die folgenden npm-Skripte konfigurieren Nodemon und npm, um meine App zu starten und auf Änderungen an TypeScript-Dateien zu überwachen:

"start": "nodemon -e ts  --exec \"npm run myapp\"",
"myapp": "tsc -p . && node server.js",

Ich habe bereits Nodemon für Abhängigkeiten. Wenn ich es ausführe npm start, fordert es Nodemon auf, seine Dateien mithilfe des -eSchalters zu überwachen , und ruft dann das myappnpm-Skript auf, bei dem es sich um eine einfache Kombination aus dem Transpilieren der Typoskriptdateien und dem Starten der resultierenden server.js handelt. Wenn ich die TypeScript-Datei ändere, -egeschieht aufgrund des Wechsels der gleiche Zyklus und neue .js-Dateien werden generiert und ausgeführt.

MehranTM
quelle
14

Ich verwende Nodemon Version 1.88.3 in meinem Node.js-Projekt. Informationen zur Installation von Nodemon finden Sie unter https://www.npmjs.com/package/nodemon .

Überprüfen Sie Ihre package.json, um festzustellen, ob sich "scripts" folgendermaßen geändert hat:

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

server.jsIst mein Dateiname, können Sie einen anderen Namen für diese Datei wie verwenden app.js.

Führen Sie danach Folgendes auf Ihrem Terminal aus: npm run dev

Sukma Saputra
quelle
6

Verwendung -exec:

"your-script-name": "nodemon [options] --exec 'npm start -s'"
KeatsPeeks
quelle
Gibt es eine andere Möglichkeit als exec, dies zu tun?
Citronen
Nur nodemon [options] --exec 'npm start -s'wenn Sie es über die Kommandozeile tun möchten.
Nathanhleung
@ArnoldRoa Installiere es.
8онстантин Ван
5

Ändern Sie zuerst Ihre package.json- Datei.

"scripts":
    { 
        "start": "node ./bin/www",
        "start-dev": "nodemon ./app.js"
    },

Führen Sie danach den Befehl aus

npm run start-dev
rkeshri
quelle
1
Aber wenn Sie davonlaufen, app.jsumgehen Sie alles, was ./bin/wwwtut ...
Jake Wilson
1
Dies öffnet jedes Mal einen neuen Tab
Qui-Gon Jinn
5

In der Datei package.json. Datei wie folgt ändern

"scripts":{ 
   "start": "node ./bin/www", 
   "start-dev": "nodemon ./app.js"
 },

und dann npm run start-dev ausführen

Sohail Ahmad
quelle
1

Sie können nodemon auch global für die häufige Verwendung installieren:

npm i nodemon -g oder sudo npm i nodemon -g

Bearbeiten Sie dann Ihre package.json:

  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },

Im Allgemeinen gibt 'dev' die Verwendung in der Entwicklung an ( npm run dev ).

Dhahn
quelle
1

Dies hängt von den Arten Ihrer Nodemon-Installation ab. Wenn Sie Nodemon mithilfe von Befehlen ( npm install nodemon --globaloder npm install nodemon -g) global installieren , müssen Sie in Ihrer Datei package.json kein Skript für Nodemon angeben . Wenn Sie nur den Befehl ausführen, nodemon index.jswird Ihr Projekt ausgeführt.

Wenn Sie Nodemon jedoch lokal per Befehl installieren, müssen npm install nodemonSie das Skript angeben. Wenn Sie es nennen , wie beginnen dann npm run startoder npm startden Server auslösen zu laufen.

// Absolutely no need for global installation
 "scripts": {
    "start": "nodemon index.js"
  }
Herr
quelle
1

Wenn Sie nodemonglobal installiert haben , nodemonwird das startSkript automatisch ausgeführt, wenn Sie es einfach in Ihrem Projekt ausführen package.json.

Zum Beispiel:

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

Aus der Nodemon-Dokumentation :

nodemon sucht auch in package.json nach der Eigenschaft scripts.start (ab nodemon 1.1.x).

Alf Eaton
quelle
0

Im Paket json:

"scripts": {
  "start": "node index",
  "dev": "nodemon index"
},

"devDependencies": {
  "nodemon": "^2.0.2"
}

Und im Terminal für die Entwicklung:

npm run dev

Und um den Server regelmäßig zu starten:

npm start
amixOV
quelle
Was ist "Regiuler" ? Meinst du "normal" ?
Peter Mortensen
-1

Um eine globale Installation zu vermeiden, fügen Sie Nodemon als Abhängigkeit hinzu und ...

package.json

"scripts": {
    "start": "node ./bin/www",
    "start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
  },
zipzit
quelle
Sie können es trotzdem zu "start-dev" machen: "nodemon ./bin/www", wenn Sie es unter devDependencies
WoLfPwNeR