一、问题简介
监控目录下所有文件,只有有文件更新就立即重启。
二、解决方案
1、--watch
-
监控我的项目目录下所有文件,任意文件有改变,就主动重启 node.js 我的项目。
# 1、装置 pm2 npm install pm2 @latest -g # or yarn global add pm2 # 2、转到 node.js 我的项目根目录下 cd < 我的项目根目录 > # 3、用 pm2 启动 node.js 我的项目,我的项目目录下有文件改变就重启 pm2 start app.js--watch # 当初就能够失常拜访 node.js 我的项目了,且能够查看我的项目状态 pm2 list pm2 log
2、--ignore-watch
-
能够去除一些不须要监控的目录或文件。
# 监控除了 node_modules 目录以外文件 pm2 start app.js --watch --ignore-watch="node_modules"
3、配置文件中设置监控的办法
-
状况 1:监控和疏忽具体文件
module.exports = { script: "app.js", // 监控这两个文件夹 watch: ["server", "client"], // 监控工夫距离 watch_delay: 1000, // 疏忽这两个文件夹 ignore_watch: ["node_modules", "client/img"], }
-
状况 2:监控我的项目目录下所有文件
module.exports = { script: "app.js", watch: true }
三、restart 与 reload 区别
- restart 会杀掉现有过程 并 启动新过程,服务会中断;
-
reload 不会杀掉现有过程,在现有过程从新加载,服务不会中断;
# 只有 app_name 这个利用被 reload pm2 reload <app_name> # 配置文件中所有利用都被 reload pm2 reload process.json # 只有配置文件中的 api 利用被 reload pm2 reload process.json --only api
四、参考文档
- PM2 用监控模式实时更新 Node.js 我的项目!