← 中文资源

简体中文版本

Node.js ENOSPC: 文件监听数量达到系统上限

修复 Linux 上 inotify 的 ENOSPC 错误:开发服务器与编辑器耗尽文件监听额度,通过调高 fs.inotify.max_user_watches 解决。

阅读英文原文

症状

开发服务器与编辑器报出 ENOSPC: System limit for number of file watchers reached,随后悄然不再感知文件变化。通常在打开大型仓库或又启用一个监听工具后出现。

诊断

查看内核限额:

cat /proc/sys/fs/inotify/max_user_watches
cat /proc/sys/fs/inotify/max_user_instances

与监听目录规模对比:一个含 20 万个文件的 node_modules 远超 8192 的默认上限。

修复

持久化调高限额:

echo 'fs.inotify.max_user_watches=524288' | sudo tee /etc/sysctl.d/40-inotify.conf
sudo sysctl --system

随后在工具配置中忽略 node_modules、.git 与 dist。

验证

重启监听进程,修改一个被跟踪的文件,确认变化能被检测到;再次读取 sysctl 值以确认设置已持久生效。