2017-06-22 15 views
0

sassgulpでコンパイルしてから、uglify cssを生成します。gulp:順次タスク実行

gulp.task('build', ['sass', 'min-css'], function(){ 

    // ... 

}); 

をしようとしたとき、私は、コンソールで次のレポートでした:

[16:44:06] Starting 'sass'... 
[16:44:06] Starting 'min-css'... 
[16:44:22] Finished 'sass' after 16 s 
[16:44:22] Finished 'min-css' after 16 s 
[16:44:22] Starting 'build'... 
[16:44:22] Finished 'build' after 6.2 ms 

を見ての通りsassタスクが終了する前に、min-cssタスクが開始されます。エラーではありませんが、この作業順序は間違っています。 min-cssが開始する前に私はsassが完了する必要があります。

答えて

1

gulp docs: "注:タスクは並行して(一度に)実行されるため、タスクが開始/終了するとは想定しないでください。"ですから、あなたのmin-cssタスクは、Sassタスクの前に開始または終了することがあります。

これを解決する主な方法は2つあります。

(1) 'min-css'タスクを 'sass'タスクに依存させます。

// identifies a dependent task must be complete before this one begins 

gulp.task('min-css', ['sass'], function() { 
    // task 'sass' is done now 
}); 

のようなものは(2) run-sequence

のように、この問題のために設計されたプラグインを使用して指定された順序で一気一連のタスクを実行します。この関数は、実行順序を定義したが、依存関係を使用しない、または使用できないという状況を解決するために設計されています。

(3)また、gulp.seriesとgulp.parallel関数を持つgulp4.0を試してみると、これらの作業が簡単になります。 Gulp4は技術的にベータ版です。

+0

ありがとうございました!プラグインで 'run-sequence'を実行してください。 –

関連する問題