Node.js Express 4+;pm2手表不工作

Node.js Express 4+;pm2手表不工作,node.js,express,pm2,express-4,Node.js,Express,Pm2,Express 4,我用这个来运行pm2: pm2 start bin/www --watch ../ 问题是,当我更新根文件夹中的app.js时,它似乎不是自动重新启动节点。有什么想法吗?想出了一个解决方案: //processes.json: { "apps" : [{ "name" : "someExpress4App", "script" : "bin/www", "watch" : "../",

我用这个来运行pm2:

pm2 start bin/www --watch ../

问题是,当我更新根文件夹中的app.js时,它似乎不是自动重新启动节点。有什么想法吗?

想出了一个解决方案:

//processes.json:
    {
      "apps" : [{
        "name"        : "someExpress4App",
        "script"      : "bin/www",
        "watch"       : "../",
        "log_date_format"  : "YYYY-MM-DD HH:mm Z",
      }]
    }
将其放在项目的根目录上,然后运行pm2,如下所示:

pm2 start processes.json

我一直想自己弄明白。我的想法是,它可能使用相对于执行目录的监视目录,执行目录是项目的根目录,因此,当您指定
--watch../
时,实际上是在上面指定您实际要监视的文件夹。我自己还没有尝试过,因为我在生产服务器上使用了
pm2
,所以我最终进入
ssh
ing,
git pull
ing最新代码,然后手动运行
pm2重启www
,这与您的问题无关。@BrandonAnzaldi:发现了一个解决方案。以下为答案。2021年2月-现在只有以下作品-应该“watch”是布尔值吗?启用手表功能,默认为“false”。如果为true,则每次检测到appDoing文件夹或子文件夹上的文件更改时,它都会重新启动应用程序,从而监视整个Express父目录。这意味着,如果您使用Webstorm之类的东西来维护一个目录,那么每当Webstorm在这个目录中写入内容时,您的pm2就会重新启动服务器。如果您修改公用文件夹中的内容,也会发生同样的情况。。。相反,我建议直接添加你想要的手表目录和你的app.js
“watch”:['core','other folder','app.js']
@user1853777:如果你确切地知道要不断刷新的内容,最好是做
“ignore_watch”:[.idea”]
。我想的另一种方式是:如果你确切地知道你想要看什么,把它放在“手表”里。其主要优点是,如果有人使用其他IDE,则无需进行任何更改。在ignore_watch中,您还必须列出公用文件夹。在我的项目中,我更喜欢所有服务器文件只有一个文件夹,所以很容易在watch中列出。无论如何,这只是一个偏好。嘿,我第一次做pm2启动,我的json就像
{“apps”:[{“name”:“fp back”,“script”:/opt/nodeJs/fp back/bin/www”,“log_file”:“/var/log/pm2/fp back.log”,“error_file”:/bar/log/pm2/fp back err.log”,“watch”:/opt/nodeJs/fp back/“}]}
我做错了什么我三次检查了这个文件