2014-12-30 4 views
0

하나의 꿀꺽 거리는 작업에서 여러 동작을 수행하려면 어떻게해야합니까? 다음은 일이 잘못되어 모든 종류의 이상한 오류가 발생하는 것처럼 작동하지 않습니다. 나는 How to perform multiple gulp commands in one task에서와 같이 event-streammerge을 시도했지만 델과 함께 작동하지 않는 것 같습니다.하나의 꿀꺽 거리는 작업에서 여러 작업을 실행하는 방법은 무엇입니까?

나는 여러 개의 작업으로 나눌 수 있으며 run-sequence 플러그인을 사용할 수 있지만 링크 된 질문 에서처럼 나는 결코 Gulpfile을 개별적으로 실행되지 않고 외부에서 이해할 수없는 작업으로 팽창시키고 싶지 않다. 주어진 문맥.

gulp.task('task', function() { 

    del('....'); 

    gulp.src('....') 
     .pipe(gulp.dest('....')); 

    gulp.src('....') 
     .pipe(gulp.dest('....')); 

}); 
+0

하지만 'run-sequence'가 아닌 이유는 무엇입니까? 당신이 "bloating Gulpfile"에 관심이 있다면 추가 파일을 만들어서 그것을 요구할 수 있습니다. – Ginden

답변

3

당신은 변수로 스트림을 지정한 다음 es.merge와 함께 실행 (또는 이벤트 스트림의 모든 필요하지 않은 경우 당신이 merge-stream을 사용할 수 있습니다)해야합니다.

https://github.com/gulpjs/gulp/blob/master/docs/recipes/delete-files-folder.md

gulp.task('clean', function (cb) { 
    del([ 
    'dist/report.csv', 
    // here we use a globbing pattern to match everything inside the `mobile` folder 
    'dist/mobile/**', 
    // we don't want to clean this file though so we negate the pattern 
    '!dist/mobile/deploy.json' 
    ], cb); 
}); 

당신은 다음과 같은 다른 작업을 정의 할 수 있습니다 :

var merge = require('merge-stream'); 

gulp.task('task', ['clean'], function() { 
    var someOperation = gulp.src('./').pipe(gulp.dest('out')); 
    var someOtherOperation = gulp.src('./assets').pipe(gulp.dest('out/assets')); 

    return merge(someOperation, someOtherOperation); 
}); 

del 실행에 관해서는, 당신의 청소 작업을 수행하는 종속 작업을 설정할를 보라 이렇게하면 먼저 정리가 끝나기를 기다린 다음 다른 작업을 실행합니다.

관련 문제