#
Создание пользовательских реестровПозволяет подключать настраиваемые реестры к системе задач, которая может предоставлять общие задачи или расширенную функциональность. Реестры регистрируются с помощью 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: Проверочный настраиваемый реестр, который прикрепляет метаданные к каждой задаче.