前言
在使用 PM2 进行前端项目部署时,很可能会遇到 "watcher error" 的错误提示。这个错误通常会发生在监听器监听到文件发生变化的时候出现,而 PM2 则认为该文件不存在或者无法访问,从而导致部署出现问题。
本篇文章即是为了解决这一问题而写。
解决方法
首先,我们需要了解,PM2 中的监听器是通过 chokidar 模块实现的。Chokidar 是一个用于监听文件和目录的变化的库,支持所有平台和 Node.js 的版本。
然而,由于在某些操作系统环境下,文件系统的限制可能会导致 chokidar 的聚合器抛出异常,从而产生 "watcher error" 的错误提示。在这种情况下,最好的解决方法通过 PM2 的配置项禁用 chokidar 来实现。
禁用 chokidar 的方法如下:
// pm2.config.js module.exports = { // ... watchOptions: { usePolling: true, ignoreWatch: ["node_modules", "logs"], }, };
其中,usePolling
设置为 true
表示启用轮询模式,哪怕文件系统不支持原生的监听模式,也能够强制开启监听。ignoreWatch
则用于设置忽略的目录,一般设置为 node_modules
和 logs
等不需要监听文件变化的目录即可。
此外,还需要将监听选项和 PM2 启动时的参数进行对应调整。只需要在启动的命令后面添加 --watch
参数即可。例如:
pm2 start app.js --watch
这样,PM2 就会启动监听,及时监听到代码变化并重新部署。
总结
PM2 是一款十分优秀的 Node.js 应用部署工具,但是在使用过程中依然会面临一些坑点,"watcher error" 错误就是其中之一。通过上述方法,我们可以轻松解决这一错误,对我们的前端开发实践具有很好的指导意义。
希望本篇文章对你有所帮助,谢谢阅读。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c6bdfb10032fedd38f421e