跳到主要内容

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参数。

由于任何注册的任务都可以从命令行运行,所以避免在任务名称中使用空格。

参数类型说明
taskNamestring任务函数在任务系统中的别名。在使用命名函数作为taskFunction时不需要。
taskFunction
(必需)
function任务函数或组合任务 - 由series()parallel()生成。理想情况下应该是一个命名函数。可以附加任务元数据来为命令行提供额外信息。

返回值

注册任务时,不返回任何内容。

检索任务时,将返回注册为taskName的包装任务(不是原始函数)。包装任务有一个unwrap()方法,它将返回原始函数。

错误

当注册一个taskName缺失且taskFunction是匿名的任务时,将抛出错误,错误消息为"Task name must be specified"(必须指定任务名称)。

任务元数据

属性类型说明
namestring命名函数的一个特殊属性。用于注册任务。
注意:name不可写;它不能被设置或更改。
displayNamestring当附加到taskFunction时,为任务创建一个别名。如果使用函数名中不允许的字符,请使用此属性。
descriptionstring当附加到taskFunction时,提供命令行列出任务时要打印的描述。
flagsobject当附加到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);