Node.js: 解决 [nodemon] Internal watch failed: watch ENOSPC 错误

在使用 nodemon 监控 Node.js 应用程序文件变化时,有时可能会遇到以下错误:

--------- -------- ----- ------- ----- ------

这个错误表示监视器已经超过了系统的限制,因此无法更多地监测文件变化。

原因

出现此问题的原因是 Linux 系统默认情况下限制了进程可以同时监视的文件数。

可以通过运行以下命令来查看系统默认值:

- --- -------------------------------------

通常情况下该值为 8192。如果你的应用程序监控了大量的文件,则会很快超过这个限制,从而导致上述错误。

解决方案

解决此问题的方法是增加操作系统允许的最大文件监视数。有两种方法可以做到这一点。

方法 1:临时调整限制

可以运行以下命令临时增加文件监视器的限制:

- ---- ------ ----------------------------------

这会将文件监视器的最大容量增加到 524288。请注意,当您重新启动计算机时,此更改将被重置为默认值。

方法 2:永久性调整限制

如果要使更改永久生效,则需要更新 /etc/sysctl.conf 文件。

- ---- ---- ----------------

在文件的末尾添加以下行:

----------------------------------

保存并关闭文件,然后运行以下命令以使更改生效:

- ---- ------ --

这会重新加载 /etc/sysctl.conf 文件,并将配置更改写入内核中。

示例代码

以下是一个示例 Node.js 应用程序,它监视了大量的文件,并且由于监视器的限制而触发了错误。

----- -- - --------------

--- ---- - - -- - - ------ ---- -
  -------------- - ---------- ---- -- ----------- --------- -- -
    ------------------------ ---------------
  ---
-

使用上述解决方案之一可以轻松解决此问题。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/25526