나는 두 개의 병렬 처리 경로를 꿀꺽 마땅히 처리하는 데 어려움을 겪고 있습니다. 내 코드는 다음과 같습니다꿀꺽 꿀꺽 마시는에서 es.merge 사용 : 개체 # <Stream> '끝'방법이 없습니다
gulp.task('build', function(){
return gulp.src(src,{cwd:srcDir})
.pipe(concat('sdk.js', {newLine:'\n\n'}))
.pipe(gulp.dest('dist/'))
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(es.merge(
gulp.src('dist/sdk.js')
.pipe(preprocess({context:{debug:true}}))
.pipe(rename('sdk.debug.js')),
gulp.src('dist/sdk.js')
.pipe(preprocess({context:{}}))
.pipe(uglify())
.pipe(rename('sdk.min.js'))
))
//some more processing
.pipe(gulp.dest('dist/'))
;
});
나는 그런 포크 (fork)의 방법과 다음 병합 스트림이 작동해야한다는 제안 here을 발견했다. 그러나, 나는 오류를 얻을 :
stream.js:79
dest.end();
^
TypeError: Object #<Stream> has no method 'end'
at Stream.onend (stream.js:79:10)
at Stream.EventEmitter.emit (events.js:117:20)
at end (C:\Users\user\Documents\proj\node-sdk\node_modules\gulp-
jshint\node_modules\map-stream\index.js:116:39)
at Stream.stream.end (C:\Users\user\Documents\proj\node-sdk\node
_modules\gulp-jshint\node_modules\map-stream\index.js:122:5)
at Stream.onend (stream.js:79:10)
at Stream.EventEmitter.emit (events.js:117:20)
at end (C:\Users\user\Documents\proj\node-sdk\node_modules\gulp-
jshint\node_modules\map-stream\index.js:116:39)
at queueData (C:\Users\user\Documents\proj\node-sdk\node_modules
\gulp-jshint\node_modules\map-stream\index.js:62:17)
at next (C:\Users\user\Documents\proj\node-sdk\node_modules\gulp
-jshint\node_modules\map-stream\index.js:71:7)
at C:\Users\user\Documents\proj\node-sdk\node_modules\gulp-jshin
t\node_modules\map-stream\index.js:85:7
그것 (하나 개의 처리 경로) 모든 것이 예상 작품으로하지 않고 같은 문제가 es.merge의 사용과 거짓말을 것으로 보인다. 불행히도 node.js 스트림에 대한 광범위한 지식이 없으므로이 문제의 원인을 파악할 수 없습니다. 노드의 내 버전이 0.10.28, 꿀꺽 꿀꺽 3.6.2, 이벤트 스트림이 3.1.5입니다.
감사 :
https://github.com/dominictarr/event-stream/blob/master/index.js#L32
대체 솔루션은 두 개의 별도의 작업 및 사용 꿀꺽 꿀꺽 종속성으로 작업을 분할하는 것입니다. 나는 결국 이것을 비슷한 방식으로 해결했다. 그 작업을 세 가지 ('build_standard', 'build-debug'및 'build_min')로 나누었다. – mz8i