#
カスタムレジストリの作成カスタムレジストリをタスクシステムにプラグインすることで、共有タスクや機能拡張を提供できます。レジストリはregistry()
を使用して登録されます。
#
構造gulpで受け入れられるためには、カスタムレジストリは特定の形式に従う必要があります。
registry()
に渡されたレジストリインスタンスに4つのメソッドすべてがない場合、エラーがスローされます。
#
登録上記の例にあるレジストリを登録するには、そのインスタンスをregistry()
に渡す必要があります。
#
メソッドinit(gulpInst)
#
レジストリのinit()
メソッドは、registry()
関数の最後に呼び出されます。唯一の引数として渡されるgulpインスタンス(gulpInst
)を使用して、gulpInst.task(taskName, fn)
を使用してタスクを事前に定義できます。
#
パラメータパラメータ | 型 | 備考 |
---|---|---|
gulpInst | オブジェクト | gulpのインスタンス。 |
get(name)
#
get()
メソッドは、カスタムレジストリが解決して返すタスクのname
、またはその名前のタスクが存在しない場合はundefined
を受け取ります。
#
パラメータパラメータ | 型 | 備考 |
---|---|---|
name | 文字列 | 取得するタスクの名前。 |
set(name, fn)
#
set()
メソッドは、タスクのname
とfn
を受け取ります。これは、ユーザー登録済みのタスクをカスタムレジストリに提供するために、task()
によって内部的に呼び出されます。
#
パラメータパラメータ | 型 | 備考 |
---|---|---|
name | 文字列 | 設定するタスクの名前。 |
fn | 関数 | 設定するタスク関数。 |
tasks()
#
レジストリ内のすべてのタスクをリストするオブジェクトを返す必要があります。
#
ユースケース#
タスクの共有すべてのプロジェクトで共通のタスクを共有するには、レジストリにinit
メソッドを公開します。このメソッドは、唯一の引数としてgulpのインスタンスを受け取ります。その後、gulpInst.task(name, fn)
を使用して、事前に定義されたタスクを登録できます。
たとえば、clean
タスクを共有する場合があります。
次に、プロジェクトで使用するには
#
共有機能タスクがレジストリに追加される方法を制御することで、タスクを装飾できます。
たとえば、すべてのタスクでいくつかのデータを共有したい場合、カスタムレジストリを使用してそれらのタスクをそのデータにバインドできます。上記レジストリメソッドの説明に従って、変更されたタスクを返すようにしてください。
#
例- undertaker-registry: Gulp 4のデフォルトレジストリ。
- undertaker-common-tasks: タスクを事前に定義する概念実証用カスタムレジストリ。
- undertaker-task-metadata: 各タスクにメタデータを追加する概念実証用カスタムレジストリ。