Создание пользовательских реестров#
Позволяет подключать настраиваемые реестры к системе задач, которая может предоставлять общие задачи или расширенную функциональность. Реестры регистрируются с помощью registry().
Структура#
Чтобы быть принятыми gulp, пользовательские реестры должны соответствовать определенному формату.
Если экземпляр реестра, переданный в registry(), не имеет всех четырех методов, будет выдана ошибка.
Регистрация#
Если мы хотим зарегистрировать наш пример реестра сверху, нам нужно будет передать его экземпляр в registry().
Методы#
init(gulpInst)#
Метод реестра init() вызывается в самом конце функции registry(). Экземпляр gulp, переданный как единственный аргумент (gulpInst), может использоваться для предварительного определения задач с помощью gulpInst.task(taskName, fn).
Параметры#
| параметр | тип | примечание | 
|---|---|---|
| gulpInst | object | Экземпляр gulp. | 
get(name)#
Метод get() получает имя задачи name, которую пользовательский реестр должен разрешить и вернуть, или undefined, если задачи с таким именем не существует.
Параметры#
| параметр | тип | примечание | 
|---|---|---|
| name | string | Название задачи, которую нужно получить. | 
set(name, fn)#
Метод set() получает имя задачи name и fn. Это вызывается внутри task() для предоставления задач, зарегистрированных пользователями, настраиваемым реестрам.
Параметры#
| параметр | тип | примечание | 
|---|---|---|
| name | string | Название устанавливаемой задачи. | 
| fn | function | Задача, которую необходимо установить. | 
tasks()#
Должен возвращать объект со списком всех задач в реестре.
Сценарии использования#
Совместное использование задач#
Чтобы совместно использовать общие задачи со всеми вашими проектами, вы можете выставить метод init в реестре, и он получит экземпляр gulp в качестве единственного аргумента. Затем вы можете использовать gulpInst.task(name, fn) для регистрации предопределенных задач.
Например, вы можете захотеть поделиться задачей clean:
Затем, чтобы использовать его в проекте:
Совместное использование функций#
Контролируя, как задачи добавляются в реестр, вы можете их декорировать.
Например, если вы хотите, чтобы все задачи разделяли некоторые данные, вы можете использовать настраиваемый реестр, чтобы привязать их к этим данным. Обязательно верните измененную задачу в соответствии с описанием методов реестра выше:
Примеры#
- undertaker-registry: Реестр Gulp 4 по умолчанию.
- undertaker-common-tasks: Проверочный настраиваемый реестр, который предварительно определяет задачи.
- undertaker-task-metadata: Проверочный настраиваемый реестр, который прикрепляет метаданные к каждой задаче.