在使用 nodemon 监控 Node.js 应用程序文件变化时,有时可能会遇到以下错误:
--------- -------- ----- ------- ----- ------
这个错误表示监视器已经超过了系统的限制,因此无法更多地监测文件变化。
原因
出现此问题的原因是 Linux 系统默认情况下限制了进程可以同时监视的文件数。
可以通过运行以下命令来查看系统默认值:
- --- -------------------------------------
通常情况下该值为 8192。如果你的应用程序监控了大量的文件,则会很快超过这个限制,从而导致上述错误。
解决方案
解决此问题的方法是增加操作系统允许的最大文件监视数。有两种方法可以做到这一点。
方法 1:临时调整限制
可以运行以下命令临时增加文件监视器的限制:
- ---- ------ ----------------------------------
这会将文件监视器的最大容量增加到 524288。请注意,当您重新启动计算机时,此更改将被重置为默认值。
方法 2:永久性调整限制
如果要使更改永久生效,则需要更新 /etc/sysctl.conf
文件。
- ---- ---- ----------------
在文件的末尾添加以下行:
----------------------------------
保存并关闭文件,然后运行以下命令以使更改生效:
- ---- ------ --
这会重新加载 /etc/sysctl.conf
文件,并将配置更改写入内核中。
示例代码
以下是一个示例 Node.js 应用程序,它监视了大量的文件,并且由于监视器的限制而触发了错误。
----- -- - -------------- --- ---- - - -- - - ------ ---- - -------------- - ---------- ---- -- ----------- --------- -- - ------------------------ --------------- --- -
使用上述解决方案之一可以轻松解决此问题。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/25526