Angular应用中文件监视器是什么?如何清理?(已达系统限制)
Angular 本地开发 ENOSPC 文件监视器超限问题排查与解决
问题现象
我有一个由多个小型示例应用组成的Angular项目,本地执行ng serve后控制台大量刷屏以下错误:
Watchpack Error (watcher): Error: ENOSPC:
System limit for number of file watchers reached,
watch '/home/tilman/Code/angular_examples/node_modules/blah/blah'
应用仍能正常运行,仅控制台被错误信息干扰。环境细节:
- Ubuntu 20.04
- PyCharm 2024.1.3(专业版)
- Angular CLI: 13.3.4
- Node: 17.9.0(
ng v显示为Unsupported) - npm: 8.5.5
- 系统文件监视器上限:
/proc/sys/fs/inotify/max_user_watches= 65536
错误最初涉及node_modules下多个路径,最终固定循环出现四个路径:
/home/tilman/Code/angular_examples/node_modules/jquery/dist /home/tilman/Code/angular_examples/node_modules/jquery /home/tilman/Code/angular_examples/node_modules/typescript/lib /home/tilman/Code/angular_examples/node_modules/typescript
核心疑问
- 文件监视器是什么?
- 是否需要文件监视器?
- 为何会出现数量超限?
- 如何清理/彻底解决?
无效尝试
- 删除重装
node_modules:无法从根本解决问题,仅为临时方案 - 参考React项目配置:在
webpack.config.js中添加watchOptions: { ignored: /node_modules/ },但Angular项目无此配置文件
最终有效解决方法
将node_modules添加到PyCharm的排除文件夹列表后,问题完全解决(此前该文件夹显示橙色,但未被加入排除列表)。
补充说明
- PyCharm曾弹出提示建议增加系统文件监视器数量,但这是治标方案,无法避免不必要的文件监听
- Angular官方曾提及无法直接通过框架配置排除文件夹,但已有相关改进提案
内容的提问来源于stack exchange,提问作者Watchduck
相关产品推荐
相关产品推荐

