Gulpにおけるタスクの非同期処理
Gulpのすべてのタスクが非同期であることを理解しておく必要があります。 これが何を意味するか、例を見てみましょう。 パブリックタスク内で2つのプライベートタスクが呼び出されているとします:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
非同期性とは、タスクtask2が
タスクtask1の完了を待たず、
それと並行して実行されることを意味します。
より実践的な例で考えてみましょう。 最初のタスクがLESSをCSSに変換し、 2番目のタスクが生成されたCSSを最小化するとします。
この場合、問題に直面します: LESSのコンパイル結果がCSSファイルに渡される前に、 CSSファイルを最小化することはできないからです!
しかし、タスクが同期的(順次、一つずつ)に実行される場合、 別の問題に直面します:並行して実行できるタスクが 一つずつ実行され、Gulpの動作が遅くなるのです。 これも例で考えてみましょう。
最初のタスクがCSSファイルを最小化し、 2番目のタスクがJavaScriptファイルを最小化するとします。 明らかに、これら2つの関連のない操作は同時に実行できます。
幸いなことに、Gulpは、 どのタスクを並行して実行し、どのタスクを順次実行すべきかを 明示的に指定するためのツールを提供しています。 これらのツールは次のレッスンで解説します。
順次実行されるべき2つのタスクの例を考えてください。
並列実行されるべき2つのタスクの例を考えてください。