3

我正在使用 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() 增加限制。

我试图应用这样的答案和这个我似乎无法弄清楚在哪里打电话。setMaxListeners(0)

setMaxListeners合并流时如何调用?

4

2 回答 2

1

Node 0.12中,您将能够EventEmitter.defaultMaxListeners为所有实例进行设置。

于 2014-03-26T11:18:21.050 回答
1

看起来问题出在event-stream模块上(请参阅此问题)。

现在,我能够用这行代码抑制这个问题。当然,这会在全局范围内设置最大值,这并不理想。

require('events').EventEmitter.prototype._maxListeners = 30;

看来该问题最终将得到解决,stream-combiner其中依赖于event-stream.

于 2014-03-24T02:37:33.743 回答