#
创建自定义注册表允许将自定义注册表插入任务系统,该系统可以提供共享任务或增强功能。使用 registry()
注册注册表。
#
结构为了被 gulp 接受,自定义注册表必须遵循特定格式。
如果传递给 registry()
的注册表实例没有所有这四种方法,将会抛出一个错误。
#
注册如果我们希望注册上面示例中的注册表,我们需要将它的一个实例传递给 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:将元数据附加到每个任务的概念验证自定义注册表。