parallel()#

タスク関数または合成された操作、あるいはその両方を、同時に実行されるより大きな操作に結合します。 `series()` と `parallel()` を使用して合成された操作の入れ子深度に制限はありません。

使用方法#

const { parallel } = require('gulp');
function javascript(cb) {
// 本文は省略
cb();
}
function css(cb) {
// 本文は省略
cb();
}
exports.build = parallel(javascript, css);

シグネチャ#

parallel(...tasks)

パラメータ#

パラメータタイプ備考
tasks
(必須)
関数
文字列
任意の数のタスク関数を個々の引数として渡すことができます。タスクを事前に登録している場合は文字列を使用できますが、お勧めしません。

戻り値#

タスクとして登録されるか、他の `series` または `parallel` の合成、あるいはその両方にネストされる合成操作。

合成操作が実行されると、すべてのタスクが最大並列度で実行されます。1つのタスクでエラーが発生した場合、他のタスクは非決定的に完了するかどうかが決まります。

エラー#

タスクが渡されない場合、「1つ以上のタスクをseriesまたはparallelを使用して結合する必要があります」というメッセージのエラーがスローされます。

無効なタスクまたは未登録のタスクが渡された場合、「タスクが定義されていません」というメッセージのエラーがスローされます。

前方参照#

前方参照とは、まだ登録されていないタスクを文字列参照を使用して合成することです。これは古いバージョンでは一般的な方法でしたが、タスクの実行時間を短縮し、名前付き関数の使用を促進するために、この機能は削除されました。

新しいバージョンでは、前方参照を使用しようとすると、「タスクが定義されていません」というメッセージのエラーが表示されます。タスク登録に `exports` を使用*し*、文字列でタスクを合成しようとすると、このエラーが発生することがあります。このような場合は、文字列参照の代わりに名前付き関数を使用してください。

移行中は、前方参照レジストリが必要になる場合があります。これにより、すべてのタスク参照にクロージャが追加され、ビルドが大幅に遅くなります。 **この修正に長時間頼らないでください**。

タスクの重複を避ける#

合成操作が実行されると、指定されたたびに各タスクが実行されます。

2つの異なる合成で参照される `clean` タスクは2回実行され、望ましくない結果につながります。代わりに、 `clean` タスクを最終的な合成で指定するようにリファクタリングしてください。

次のようなコードがある場合

// これは誤りです
const { series, parallel } = require('gulp');
const clean = function(cb) {
// 本文は省略
cb();
};
const css = series(clean, function(cb) {
// 本文は省略
cb();
});
const javascript = series(clean, function(cb) {
// 本文は省略
cb();
});
exports.build = parallel(css, javascript);

次のように移行してください

const { series, parallel } = require('gulp');

:`gulp` から `series` と `parallel` 関数をインポートしています。
function clean(cb) {

:`clean` という関数を定義しています。`cb` はコールバック関数です。
// 本文は省略
cb();
}
function css(cb) {
// 本文は省略
cb();
}
function javascript(cb) {
// 本文は省略
cb();
}
exports.build = series(clean, parallel(css, javascript));

:`build` タスクを定義しています。`clean` 関数を最初に実行し、その後 `css` と `javascript` タスクを並列で実行します。