PM2 遇到 "watcher error" 的解决方法

阅读时长 2 分钟读完

前言

在使用 PM2 进行前端项目部署时,很可能会遇到 "watcher error" 的错误提示。这个错误通常会发生在监听器监听到文件发生变化的时候出现,而 PM2 则认为该文件不存在或者无法访问,从而导致部署出现问题。

本篇文章即是为了解决这一问题而写。

解决方法

首先,我们需要了解,PM2 中的监听器是通过 chokidar 模块实现的。Chokidar 是一个用于监听文件和目录的变化的库,支持所有平台和 Node.js 的版本。

然而,由于在某些操作系统环境下,文件系统的限制可能会导致 chokidar 的聚合器抛出异常,从而产生 "watcher error" 的错误提示。在这种情况下,最好的解决方法通过 PM2 的配置项禁用 chokidar 来实现。

禁用 chokidar 的方法如下:

其中,usePolling 设置为 true 表示启用轮询模式,哪怕文件系统不支持原生的监听模式,也能够强制开启监听。ignoreWatch 则用于设置忽略的目录,一般设置为 node_moduleslogs 等不需要监听文件变化的目录即可。

此外,还需要将监听选项和 PM2 启动时的参数进行对应调整。只需要在启动的命令后面添加 --watch 参数即可。例如:

这样,PM2 就会启动监听,及时监听到代码变化并重新部署。

总结

PM2 是一款十分优秀的 Node.js 应用部署工具,但是在使用过程中依然会面临一些坑点,"watcher error" 错误就是其中之一。通过上述方法,我们可以轻松解决这一错误,对我们的前端开发实践具有很好的指导意义。

希望本篇文章对你有所帮助,谢谢阅读。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c6bdfb10032fedd38f421e

纠错
反馈