Ошибка: EMFILE, слишком много открытых файлов с 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)

person codebased    schedule 07.05.2015    source источник


Ответы (1)


Попробуйте это как более гибкую замену fs:

graceful-fs

Глобально исправьте fs следующим образом:

var realFs = require('fs')
var gracefulFs = require('graceful-fs')
gracefulFs.gracefulify(realFs)
person Brett Postin    schedule 01.07.2015
comment
где это надо пропатчить? У меня есть много модулей, зависящих от fs - person Angelin Calu; 14.03.2017