使用pm2作为express.js应用的自动部署工具,在开发过程中,发现使用watch参数进行自动热加载的过程中出现问题监控项目目录下文件内容的变化。只能监听html文件的变化,不能监听js文件。详细描述的项目目录结构如下:project|--app.js|--ecosystem.json|--bin|--www|--other_folderbin/www是项目的启动入口。ecosystem.json是pm2的配置文件,位于项目根目录。ecosystem.json的内容为:{"apps":[{"name":"myapp","script":"./bin/www",//是相对于ecosystem.json文件的相对目录"watch":true,....}]}watch默认值为true,即上面的配置不需要设置watch选项,也可以监听内容变化,监听当前所在目录下的所有内容ecosystem.json位于。另外,watch的值还可以是false(关闭watch),也可以是代表某个路径的字符串,也可以是代表多个目录的字符串数组。但是根据上面的配置,发现无法监听到js文件的变化。例如,不监视对app.js文件的更改。原因是由于服务器的文件系统。解决方法是在ecosytem.json文件中设置watch_options选项,如下"watch_options":{"usePolling":true}经过实践,可以解决。有兴趣的可以看这里。
