我使用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;
});
所以它工作正常,但现在我的捆绑包已经足够大,我看到以下错误:
(节点)警告:检测到可能的EventEmitter内存泄漏。 11名听众补充道。使用emitter.setMaxListeners()来增加限制。
我已尝试应用this和this等答案,但我似乎无法确定在哪里拨打setMaxListeners(0)
。
如何在合并信息流时拨打setMaxListeners
?
答案 0 :(得分:1)
看起来关注的是event-stream
模块(see this issue)。
目前,我能够通过这行代码来解决这个问题。当然,这会设置全局最大值,这是不理想的。
require('events').EventEmitter.prototype._maxListeners = 30;
问题似乎最终会在stream-combiner
中解决,event-stream
是{{1}}的依赖关系。
答案 1 :(得分:1)
在Node 0.12中,您可以为所有实例设置EventEmitter.defaultMaxListeners
。