2015-01-28 1 views
4

기본적으로 나는 markdown을 사용하여 처리하는 파일 집합을 가지고 있습니다. 초기 처리를 수행 한 후, 나는 두 가지로 스트림을 분할하고 싶습니다 :꿀꺽 꿀꺽 마시는 스트림을 나누는 방법

  1. 먼저, 레이아웃
  2. 같은 추가 처리와 1..1 매핑 둘째, 하나에 모든 파일을 매핑, 인덱스와 같은, 위에 적용된 레이아웃이없는 경우

스트림을 변수에 저장하고 파이프를 계속 유지 하시겠습니까? 여기에 내 현재 작업입니다 : 내가 lazypipe를 사용하고 /하거나 파이프를 여러 번 만들 수

gulp.task('default', function() { 
    var entries = gulp.src('./log/*.md') 
     .pipe(frontMatter()) 
     .pipe(markdown()); 

    var templated = entries 
     .pipe(applyTemplate()) 
     .pipe(gulp.dest('./build/log')); 

    var index = entries 
     .pipe(index()) 
     .pipe(applyIndexTemplate()) 
     .pipe(gulp.dest('./build')); 

    return merge(templated, index); 
} 

,하지만 또 다른 방법은 무엇입니까?

답변

7

Node.js docs에 따르면, "여러 목적지 안전에 파이프 할 수있다"원래 예제는 올바른 :

var entries = gulp.src('./log/*.md') 
    .pipe(frontMatter()) 
    .pipe(markdown()); 

var templated = entries 
    .pipe(applyTemplate()) 
    .pipe(gulp.dest('./build/log')); 

var index = entries 
    .pipe(index()) 
    .pipe(applyIndexTemplate()) 
    .pipe(gulp.dest('./build')); 

return merge(templated, index); 
+0

는 꿀꺽 조치 I 수 있었다 만약 내가 스트림을 한 점 (당신의'entity' var)에 저장했다면 스트림에서 두 가지 다른 일을하는 것처럼 그것을 사용했다. 두 변경 내용을 양쪽 출력에 모두 적용한 것처럼 보였지만, 하나의 긴 스트림을 저장하지 않고 (즉, 모든 변수를 제거하고 단일 스트림에서 하나의 커다란 데이지 체인을 사용하면됩니다.) 제대로 작동합니다. – Grofit

0
var gulpClone = require("gulp-clone"); 
var eventStream = require('event-stream'); 

var entries = gulp.src('./log/*.md') 
    .pipe(frontMatter()) 
    .pipe(markdown()); 

var templated = entries 
    .pipe(gulpClone()) 
    .pipe(applyTemplate()) 
    .pipe(gulp.dest('./build/log')); 

var index = entries 
    .pipe(gulpClone()) 
    .pipe(index()) 
    .pipe(applyIndexTemplate()) 
    .pipe(gulp.dest('./build')); 

return eventStream.merge(templated, index); 
내가 이것을 시도했지만 이상한 행동을 얻고 있었다