【Vue npm run server启动项目出现Error: EMFILE: too many open files, watch 】

博客围绕Vue项目问题展开,介绍了解决办法,包括方案一、方案二,还提及针对vscode的修改。指出观察者排除模式存在错误,增加系统的fs.inotify.max_user_watches只能缓解症状,文末给出参考链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Vue npm run server启动项目出现Error: EMFILE: too many open files, watch 】

问题:

 INFO  Starting development server...
10% building 2/2 modules 0 activeevents.js:377
      throw er; // Unhandled 'error' event
      ^

Error: EMFILE: too many open files, watch '/.../public'
    at FSWatcher.<computed> (internal/fs/watchers.js:243:19)
    at Object.watch (fs.js:1586:34)
    at createFsWatchInstance (/.../node_modules/webpack-dev-server/node_modules/chokidar/lib/nodefs-handler.js:38:15)
    at setFsWatchListener (.../node_modules/webpack-dev-server/node_modules/chokidar/lib/nodefs-handler.js:81:15)
    at FSWatcher.NodeFsHandler._watchWithNodeFs (/.../node_modules/webpack-dev-server/node_modules/chokidar/lib/nodefs-handler.js:233:14)
    at FSWatcher.NodeFsHandler._handleDir (/.../node_modules/webpack-dev-server/node_modules/chokidar/lib/nodefs-handler.js:429:19)
    at FSWatcher.<anonymous> (/.../node_modules/webpack-dev-server/node_modules/chokidar/lib/nodefs-handler.js:477:19)
    at FSWatcher.<anonymous> (/.../node_modules/webpack-dev-server/node_modules/chokidar/lib/nodefs-handler.js:482:16)
    at FSReqCallback.oncomplete (fs.js:192:5)
Emitted 'error' event on FSWatcher instance at:
    at FSWatcher._handleError (.../node_modules/webpack-dev-server/node_modules/chokidar/index.js:260:10)
    at createFsWatchInstance (/.../node_modules/webpack-dev-server/node_modules/chokidar/lib/nodefs-handler.js:40:5)
    at setFsWatchListener (/.../node_modules/webpack-dev-server/node_modules/chokidar/lib/nodefs-handler.js:81:15)
    [... lines matching original stack trace ...]
    at FSReqCallback.oncomplete (fs.js:192:5) {
  errno: -24,
  syscall: 'watch',
  code: 'EMFILE',
  path: '/.../public',
  filename: '/.../public'
}

解决办法:

方案一:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

然后重启

方案二:

针对vscode修改:

"files.watcherExclude": {
    "**/public/**": true,
    "**/.cache/**": true
}

在这里插入图片描述

这就是我的实际解决方案。事实证明,我的观察者排除模式有一个错误。它排除了**/node_modules/*/** instead of /node_modules/.
增加系统的fs.inotify.max_user_watches只会帮助解决此错误的症状,当更多的文件夹被添加到node_modules时,就没有任何帮助了。

参考链接:

https://github.com/gatsbyjs/gatsby/issues/11406

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值