我正在使用 gulpjs 来捆绑多组 css 文件。每个集合都被捆绑到自己的文件中,所以我的代码看起来像这样:
var es = require('event-stream');
gulp.task("bundle", function(){
var streams = [];
for(var i in sets) {
var set = sets[i];
var stream = gulp.src(set.sources)
.pipe(...)
.pipe(gulp.dest(set.destination));
streams.push(stream);
}
var merged = es.concat.apply(es, streams);
return merged;
});
所以它一直运行良好,但现在我的包已经足够大以至于我看到以下错误:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
我尝试应用类似 this 的答案和 this但我似乎无法弄清楚在哪里调用 setMaxListeners(0)
。
在合并流时如何调用 setMaxListeners
?
最佳答案
看起来问题出在 event-stream
模块 ( see this issue )。
目前,我能够通过这行代码抑制问题。当然,这在全局范围内设置了最大值,这并不理想。
require('events').EventEmitter.prototype._maxListeners = 30;
看起来这个问题最终会在 stream-combiner
中解决,它是 event-stream
的依赖项。
关于node.js - 合并NodeJS流时如何调用 `setMaxListeners`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22572574/