Come eseguire lo script di avvio con Nodemon


92

Come posso eseguire lo script di avvio da un file package.json con Nodemon?


Sei sicuro di poter eseguire uno script di avvio da package.json? Perché da quello che so, package.json deve elencare tutte le tue dipendenze e nodemon serve a mantenere il tuo processo in esecuzione. Non sono abbastanza sicuro di cosa stai suggerendo qui?
Saras Arya

Risposte:


142

Questo sarà un semplice comando per questo

nodemon --exec npm start

Cosa succede se devo eseguire solo test senza eseguire l'app? La tua soluzione esegue entrambi.
Sergey

1
questo funziona npm startma non avvia il server del nodo per me .. come fa a sapere dove si trova server.js?
Sonic Soul

41

Nel pacchetto json:

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

  }
}

Quindi dal terminale puoi usare npm start

Installazione di Nodemon: https://www.npmjs.com/package/nodemon


1
Siamo spiacenti, sto cercando un modo per eseguire lo script di avvio con nodemon, non eseguire nodemon nello script di avvio. Scusa se non è stato chiaro.
Citronen

6
Non npm startfallirà nella produzione per mancanza di nodemon?
ripper234

2
npm run startnonnpm start
M. Dhaouadi

1
Sono un principiante con npm. Non capisco perché dobbiamo specificare lo script di avvio mentre possiamo usare nodemon fuori dagli schemi? Ho appena installato nodemon con npm e lo uso direttamente senza specificare alcuno script e funziona perfettamente.
Hokhy Tann

@ M.Dhaouadi npm startè un alias dinpm run start
George,

18

Ho un file TypeScript chiamato "server.ts", i seguenti script npm configurano Nodemon e npm per avviare la mia app e monitorare eventuali modifiche sui file TypeScript:

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

Ho già Nodemon sulle dipendenze. Quando npm starteseguo, chiederà a Nodemon di monitorare i suoi file usando l' -einterruttore e quindi chiama lo myappscript npm che è una semplice combinazione di transpiling dei file dattiloscritti e quindi avvia il server.js risultante. Quando cambio il file TypeScript, a causa -edell'interruttore si verifica lo stesso ciclo e nuovi file .js verranno generati ed eseguiti.


15

Uso Nodemon versione 1.88.3 nel mio progetto Node.js. Per installare Nodemon, vedere in https://www.npmjs.com/package/nodemon .

Controlla il tuo package.json, controlla se "scripts" è cambiato in questo modo:

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

server.jsè il nome del mio file, puoi usare un altro nome per questo file come app.js.

Dopodiché, esegui questo sul tuo terminale: npm run dev



5

Per prima cosa cambia il tuo file package.json ,

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

Dopodiché, esegui il comando

npm run start-dev

1
Ma quando scappi via app.jsstai aggirando tutto ciò che ./bin/wwwfa ...
Jake Wilson

1
questo apre una nuova scheda ogni volta
Qui-Gon Jinn

5

Nel file package.json. cambia file in questo modo

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

e quindi eseguire npm run start-dev




2

Nella confezione json:

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

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

E nel terminale per lo sviluppo:

npm run dev

E per avviare regolarmente il server:

npm start

Cos'è "regiuler" ? Intendi "regolare" ?
Peter Mortensen

1

Puoi anche installare nodemon a livello globale per un uso frequente:

npm i nodemon -g o sudo npm i nodemon -g

quindi modifica il tuo package.json:

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

Generalmente, 'dev' specifica l'uso di sviluppo ( npm run dev ).


1

Dipenderà dai tipi di installazione di Nodemon. Se installi Nodemon a livello globale utilizzando i comandi ( npm install nodemon --globalo npm install nodemon -g), non devi specificare alcuno script per Nodemon nel tuo file package.json . La semplice esecuzione del comando nodemon index.jseseguirà il progetto.

Ma se installi Nodemon localmente tramite comando, npm install nodemondevi specificare lo script. Se è il nome come iniziare quindi npm run starto npm startattiverà il server per l'esecuzione.

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

1

Se hai nodemoninstallato globalmente, semplicemente in esecuzione nodemonnel tuo progetto verrà eseguito automaticamente lo startscript da package.json.

Per esempio:

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

Dalla documentazione di nodemon :

nodemon cercherà anche la proprietà scripts.start in package.json (a partire da nodemon 1.1.x).


-1

Per evitare un'installazione globale, aggiungi Nodemon come dipendenza, quindi ...

package.json

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

Puoi ancora renderlo "start-dev": "nodemon ./bin/www" se lo installi sotto devDependencies
WoLfPwNeR
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.