2014-12-16 4 views
1

공식 문서를 따르고 있지만 덤프 작업이 연속적으로 실행되고 있지 않습니다.Gulp 작업이 연속적으로 실행되지 않습니다.

gulp.task("mytask", ["foo", "bar", "baz"]); 

gulp.task("foo", function (callback) { 
    gulp 
    .src("...") 
    .pipe(changed("...")) 
    .pipe(gulp.dest(function (file) { 
     // ...stuff 
     return "..."; 
    })) 
    .on("end", function() { 
     // ...stuff 
     callback(); 
    }); 
}); 

gulp.task("bar", function (callback) { 
    //... 
}); 

gulp.task("baz", function (callback) { 
    //... 
}); 

하지만 내 출력은 다음과 같습니다

Starting 'mytask'... 
Starting 'foo'... 
Starting 'bar'...     // <-- foo is not done yet! 
Finished 'foo' 
Finished 'bar' 
Starting 'baz'... 
Finished 'baz' 
Finished 'mytask' 

어떻게 그들을 위해 실행합니까? 당신이 그 (것)들을 직렬로 실행하려면

+1

그렇지 않습니다. 시리얼 작업을 원한다면'grunt'를 사용하십시오. '꿀꺽 꿀꺽 마시는 '의 요점은 평행 과제 (그리고 하천)입니다. – Mathletics

+5

@Mathletics 당신은 죽었습니다. Gulp는 동기화 및 비동기를 허용합니다. 이 두 가지를 성취 할 수있는 방법이 있습니다. –

+1

[Gulp. 서로간에 작업을 동 기적으로 실행하는 방법을 파악할 수 없다] (http://stackoverflow.com/questions/22824546/gulp-cant-figure-how-to-run-tasks-synchronously-after-each-other) – Mathletics

답변

7

당신은 현재 작업 종속성 시스템, 예컨대 :

gulp.task("mytask", ["foo", "bar", "baz"]); 

gulp.task("foo", function (callback) { 
    //... 
    callback(...); 
}); 

gulp.task("bar", ['foo'], function (callback) { 
    //... 
    callback(...); 
}); 

gulp.task("baz", ['bar'], function (callback) { 
    //... 
    callback(...); 
}); 

그것은 어설픈의를 사용해야합니다. 나는 그것이 미래 버전에서 언급 될 것이라고 생각한다.

상황에 따라 전달하고 콜백을 호출하는 대신 return a promise or event stream 수 있습니다.

run-sequence 모듈은 현재 옵션으로 제공되고 있습니다. 그러나 위에 설명 된 작업 종속성 시스템은 현재 꿀꺽 꿀꺽 꿀꺽한 듯이 스스로 제공하는 메커니즘입니다. this comment re : run-sequence 및 gulp에서의 작업 시퀀싱의 미래를 참조하십시오.

+0

와우 그게 ... 당신 말이 맞아요 clunky. 이 내용이 문서화되어있는 곳이 있습니까? –

+0

그리고 이벤트 스트림 옵션이 나를 위해 작동하지 않는 것 같지만 길은 그렇습니다. –

+1

이벤트 스트림 옵션을 사용할 수 있는지 여부는 작업에서 수행중인 작업에 따라 다릅니다. 'foo' 태스크에서'// ... stuff'에서 실제로 어떤 일이 일어나고 있습니까? 문서는 꽤 혼란 스럽지만 마지막 단락의 링크를보고 "이 예제는 다음과 같이 보일 것입니다 :"라고 아래로 스크롤하십시오. [동 기적으로 작업 실행 지원 # 96] (https://github.com/gulpjs/gulp/issues/96)을 살펴볼 수도 있습니다. – JMM

관련 문제