task()
提醒:此API不再是推荐的模式 - 请导出你的任务。
在任务系统中定义一个任务。然后可以从命令行和series()
、parallel()
以及lastRun()
API访问该任务。
用法
注册一个命名函数作为任务:
const { task } = require('gulp');
function build(cb) {
// 省略主体
cb();
}
task(build);
注册一个匿名函数作为任务:
const { task } = require('gulp');
task('build', function(cb) {
// 省略主体
cb();
});
检索之前注册的任务:
const { task } = require('gulp');
task('build', function(cb) {
// 省略主体
cb();
});
const build = task('build');
签名
task([taskName], taskFunction)
参数
如果未提供taskName
,任务将通过命名函数的name
属性或用户定义的displayName
属性引用。对于缺少displayName
属性的匿名函数,必须使用taskName
参数。
由于任何注册的任务都可以从命令行运行,所以避免在任务名称中使用空格。
参数 | 类型 | 说明 |
---|---|---|
taskName | string | 任务函数在任务系统中的别名。在使用命名函数作为taskFunction 时不需要。 |
taskFunction (必需) | function | 任务函数或组合任务 - 由series() 和parallel() 生成。理想情况下应该是一个命名函数。可以附加任务元数据来为命令行提供额外信息。 |
返回值
注册任务时,不返回任何内容。
检索任务时,将返回注册为taskName
的包装任务(不是原始函数)。包装任务有一个unwrap()
方法,它将返回原始函数。
错误
当注册一个taskName
缺失且taskFunction
是匿名的任务时,将抛出错误,错误消息为"Task name must be specified"(必须指定任务名称)。
任务元数据
属性 | 类型 | 说明 |
---|---|---|
name | string | 命名函数的一个特殊属性。用于注册任务。 注意: name 不可写;它不能被设置或更改。 |
displayName | string | 当附加到taskFunction 时,为任务创建一个别名。如果使用函数名中不允许的字符,请使用此属性。 |
description | string | 当附加到taskFunction 时,提供命令行列出任务时要打印的描述。 |
flags | object | 当附加到taskFunction 时,提供命令行列出任务时要打印的标志。对象的键代表标志,值是它们的描述。 |
const { task } = require('gulp');
const clean = function(cb) {
// 省略主体
cb();
};
clean.displayName = 'clean:all';
task(clean);
function build(cb) {
// 省略主体
cb();
}
build.description = '构建项目';
build.flags = { '-e': '一个示例标志' };
task(build);