【pm2】watch不起做用的解决办法

pm2express.js应用的自动化部署工具,开发过程当中发现用watch参数监控工程目录下文件内容变化时自动进行热加载的过程出现问题。html

其只能监控到html文件的变化,对于js文件则监控不到。git

详述以下
工程的目录结构相似以下:github

project
|-- app.js
|-- ecosystem.json
|-- bin
    |-- www
|-- other_folder

bin/www为工程的启动入口。
ecosystem.jsonpm2的配置文件,位于工程的根目录下。
ecosystem.json内容为:express

{
  "apps": [
    {
      "name": "myapp",
      "script": "./bin/www", //是相对于ecosystem.json文件的相对目录
      "watch": true,
      ....
    }
  ]
}

watch默认值为true,即上述配置可不设置watch选项,一样也能监控内容变化,监控的为ecosystem.json所在的当前目录的下的全部内容json

此外,watch值还可为false(关闭watch)、表示某个路径的字符串表示多个目录的字符串数组数组

可是,根据上面的配置,却发现不能监控到js文件的变化。例如,app.js文件的变化就监控不到。服务器

究其缘由,是因为服务器的文件系统引发的。app

解决办法
ecosytem.json文件中设置watch_options选项,以下工具

"watch_options": {
  "usePolling": true
}

经实践,可解决。有兴趣的可研读这里code