Skip to main content

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])

参数

参数类型注解
registryInstanceobject自定义注册表的实例(而不是类)。

返回值

如果传递了 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 函数。)