2015-04-21 14 views
10

Attualmente sto programmando Node.js con Express.js e ogni volta che cambio una riga di codice nel file router o nell'app, devo digitare il comando:Come ricaricare automaticamente il progetto Node.js quando si utilizza pm2

pm2 reload id_project. 

Come faccio a fare in modo che PM2 ricominci automaticamente il progetto quando viene modificato un file?

+0

PM2 è uno strumento utilizzato in modalità di produzione. Dai un'occhiata a http://nodemon.io/, fa esattamente quello che vuoi fare. – Safari

risposta

0

Per impostazione predefinita, il nodo non aggiorna automaticamente il nostro server ogni volta che vengono modificati i file. Non conosco la soluzione specifica di pm2, ma puoi farlo con nodemon. Basta installare con: npm install -g nodemon e utilizzare con: nodemon server.js.

+0

ok, quindi ... il mio server.js usa '#!/Usr/local/bin/nodemon", ma pm2 non sembra invocare nodemon – Michael

+0

scusate, @ Michael. Come ho detto, in realtà non uso ' pm2' quindi non posso fare a meno di quello che ho già fatto. Ho appena detto quello che ho detto poiché sembra che risolverà il problema dell'OP. Prova a guardare altre risposte in questa discussione, forse possono aiutarti. – Thatkookooguy

+0

, sembra che l'altra risposta in questo thread dovrebbe ottenere la risposta accettata Non posso nemmeno cancellare questa risposta finché è la risposta accettata – Thatkookooguy

47

È necessario avviare il progetto pm2 con l'opzione --watch:

pm2 start id_project --watch 

Si potrebbe anche specificare quali file/directory da ignorare:

pm2 start id_project --watch --ignore-watch "node_modules" 

All options

O creare un JSON file che descrive come vuoi pm2 per trattare il tuo progetto:

{ 
    "name": "project_name", 
    "script": "index.js", 
    "watch": true, 
    "ignore_watch": ["node_modules"] 
} 

JSON options

+5

Questa dovrebbe essere la risposta accettata – Ben

+0

Sì, questa dovrebbe essere la risposta accettata . –

Problemi correlati