Error: EMFILE, too many open files with Gulp.watch

Error: EMFILE, too many open files with Gulp.watch

我的 gulpfile.js 看起来像这样:

gulp.task('default', ['build', 'browser-sync'], function () {
    gulp.watch("**/*.css", ['bs-reload']);
    gulp.watch(["**/*.js", "!**/*/node_modules/**/*.*"], ['bs-reload']);
    gulp.watch("**/*.html", ['bs-reload']);
});

尽管我已经排除了 node_modules,但它正在尝试为所有 node_modules 添加手表。

如何排除呢?

请注意,node_modules 不存在于项目的根目录下,感染它是在项目的根目录之上,所以为什么还要麻烦包含它?

Error: EMFILE, too many open files '/Users/**/Documents/gits/tm/node_modules/browser-sync/lib/public/socket.io.js'
    at Object.fs.openSync (fs.js:438:18)
    at Object.fs.readFileSync (fs.js:289:15)
    at Object.utils.getSocketScript (/Users/**/Documents/gits/tm/node_modules/browser-sync/lib/snippet.js:109:19)

试试这个作为 fs:

的更有弹性的替代品

graceful-fs

像这样全局修补 fs

var realFs = require('fs')
var gracefulFs = require('graceful-fs')
gracefulFs.gracefulify(realFs)