registry()
允许将自定义的注册表插入到任务系统中,以便提供共享任务或增强功能。
注意: 只有用 task()
方法注册的任务才会进入自定义注册表中。直接传递给 series()
或 parallel()
的任务函数(task functions)不会进入自定义任务注册表 - 如果你需要自定义注册表的行为,请通过字符串引用的方式将任务(task)组合在一起。
分配新注册表时,将传输当前注册表中的每个任务,并将用新注册表替换当前注册表。这允许按顺序添加多个自定义注册表。
有关详细信息,请参考 创建自定义注册表 。
用法
const { registry, task, series } = require('gulp');
const FwdRef = require('undertaker-forward-reference');
registry(FwdRef());
task('default', series('forward-ref'));
task('forward-ref', function(cb) {
// body omitted
cb();
});
函数原型
registry([registryInstance])
参数
参数 | 类型 | 注解 |
---|---|---|
registryInstance | object | 自定义注册表的实例(而不是类)。 |
返回值
如果传递了 registryInstance
,则不会返回任何内容。如果没有传递参数,则返回当前注册表实例。
可能出现的错误
参数错误
当构造函数(而不是实例)作为 registryInstance
传递时,将抛出一个错误(error),并且提示信息如下:
Custom registries must be instantiated, but it looks like you passed a constructor.(自定义注册表必须实例化,但看起来你传递的是一个构造函数啊,亲!)
缺少 get
方法
当一个没有 get
方法的注册表作为 registryInstance
传递时,将抛出一个错误(error),并且提示信息如下:
Custom registry must have
get
function.(自定义注册表必须具备get
函数。)
缺少 set
方法
当一个没有 set
方法的注册表作为 registryInstance
传递时,将抛出一个错误(error),并且提示信息如下:
Custom registry must have
set
function.(自定义注册表必须具有set
函数。)
缺少 init
方法
当一个没有 init
方法的注册表作为 registryInstance
传递时,将抛出一个错误(error),并且提示信息如下:
Custom registry must have
init
function"(自定义注册表必须具有init
函数。)
缺少 tasks
方法
当一个没有 tasks
方法的注册表作为 registryInstance
传递时,将抛出一个错误(error),并且提示信息如下:
Custom registry must have
tasks
function.(自定义注册表必须具有tasks
函数。)