2015-04-21 36 views
10

我目前正在与Express.js编程Node.js的,每次我改变一行代码的文件,路由器或应用程序的时候,我需要输入命令时,如何自动重新加载Node.js的项目:使用PM2

pm2 reload id_project. 

如何在文件更改时使pm2自动重新加载项目?

+0

PM2是在生产模式中使用的工具。看看http://nodemon.io/,它确实是你想要做的。 – Safari

回答

0

默认情况下,节点不会自动我们每次更改文件时刷新我们的服务器。我不知道具体的pm2解决方案,但是你可以用nodemon来完成。只需安装:npm install -g nodemon并使用:nodemon server.js

+0

确定,所以......我的server.js使用'#!的/ usr/local/bin目录/ nodemon”,但PM2似乎并没有援引nodemon – Michael

+0

对不起,@迈克尔。就像我说的,我不实际使用' pm2',所以我忍不住要比已经做的更多,我只是说了我所说的,因为它听起来像能够解决OP的问题,请尝试在本主题中查看其他答案,也许他们可以帮助你。 – Thatkookooguy

+0

个人,它看起来像在这个线程对方的回答应该得到公认的答案。我甚至不能只要删除这个答案,因为它是公认的答案。 – Thatkookooguy

47

您需要与--watch选项启动pm2项目:

pm2 start id_project --watch 

你也可以指定要忽略的文件/目录:

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

All options

或者创建一个json描述如何让pm2处理您的项目的文件:

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

JSON options

+5

这应该是公认的答案 – Ben

+0

是,这应该是真正的接受的答案。 –