2014-02-11 2 views
0

나는 이것을 검색하여 찾았으므로 아무 소용이 없습니다. 나는 웹 (Stackoverflow 포함)을 빗어 봤는데, 노드 문서가 대답을 찾지 못했고 --- 그게 효과가 있었다. (어쩌면 그것은 내 잘못을 검색하는 것일 수도있다.) 내가 꿀꺽 꿀꺽 설정 파일에서 이벤트 스트림과 함께 일하고있어, 그리고 고전적인 "메모리 누수가"EventEmitter 클래스에서 오류를 치고 특정 작업을했습니다. 내가 발견 한 바로는이 문제를 해결할 수있는 해답은 EventEmitter 클래스의 setMaxListeners 메소드를 호출하는 것으로 보인다. 내 연구에 따르면 이벤트 스트림에 EventEmitter의 인스턴스 여야하는 Stream 개체가 있다고 제안했습니다. 그러나 setMaxListeners를 호출하려고 시도한 적이 있다면 메서드를 찾을 수 없습니다. 그 문제를 연구하는 것을 힘들게 한 후에, 나는 Node Gurus에게 이것을 가져다 줄 것이라고 생각했다. (나는 이것이 간단하다고 가정하고, 나는 단지 뭔가를 놓친다.) 내 코드는 다음과 같습니다.Node.js event-stream : MaxListener를 설정할 위치는 어디입니까?

return eventStream.merge(
     gulp.src('./jscript/libs/file-one.js'), 
     gulp.src('./jscript/libs/filder_one/file-two.js'), 
     gulp.src('./jscript/libs/folder_two/file-three.js'), 
     gulp.src('./jscript/libs/folder_three/file_four.js'), 
     gulp.src('./jscript/libs/folder_four/file_five.js'), 
     gulp.src('./jscript/libs/folder_five/file_six.js'), 
     gulp.src('./jscript/libs/file_seven.js'), 
     gulp.src('./jscript/libs/file_eight.js'), 
     gulp.src('./jscript/lists/rules/*.js') 
    )   
    .pipe(concat('my_file.js')) 
    .pipe(gulp.dest('./jscript/dist/')) 
    .pipe(rename('my_file.min.js')) 
    .pipe(uglify()) 
    .pipe(gulp.dest('./jscript/dist/')); 

고마워요! Node.js를 0.12에서

답변

0

이 질문에 대한 직접적인 대답은 아니지만 여러 'gulp.src()'를 병합하는 대신 glob 패턴 배열을 'gulp.src()'에 전달할 수 있습니다. 그것은 당신의 문제를 해결하지 않습니까?

https://github.com/gulpjs/gulp/blob/master/docs/API.md#gulpsrcglobs-options

편집

은 직접 대답으로, 나를 위해 일한 다음 :

var merged = eventStream.merge(...); 
merged.setMaxListeners(0); 
return merged.pipe(...); 

이벤트 리스너가 병합 기능을 추가하는 동안, 청취자 수 사이에 점검 할 것 이벤트 루프의 틱. 따라서 Listener를 추가 한 직후에 MaxListener를 설정할 수 있습니다.

+0

감사! 이것은 내 문제를 해결했다. 그러나 네, 그것은 간접적 인 것이 었습니다. 이벤트 스트림에서 EventEmitter.setMaxListeners를 실제로 설정하는 방법에 대해서는 여전히 궁금합니다. 누군가가 알고 있다면 다른 상황에서 필요할 수도 있습니다. – user2646829

+0

직접 답변을 추가했습니다. –

+0

당신은 락! 고마워, 또! – user2646829

3

모든 이미 터 최대를 설정할 수 있습니다 (곧 출시 예정) : 관련 commit

var events = require('events'); 
events.EventEmitter.defaultMaxListeners = 100; 

더.

+0

매우 도움이됩니다. (해당 버전이 출시 될 예정입니다.) 감사. – user2646829

관련 문제