Skip to main content

task()

Reminder: This API isn't the recommended pattern anymore - export your tasks.

Defines a task within the task system. The task can then be accessed from the command line and the series(), parallel(), and lastRun() APIs.

Usage

Register a named function as a task:

const { task } = require('gulp');

function build(cb) {
// body omitted
cb();
}

task(build);

Register an anonymous function as a task:

const { task } = require('gulp');

task('build', function(cb) {
// body omitted
cb();
});

Retrieve a task that has been registered previously:

const { task } = require('gulp');

task('build', function(cb) {
// body omitted
cb();
});

const build = task('build');

Signature

task([taskName], taskFunction)

Parameters

If the taskName is not provided, the task will be referenced by the name property of a named function or a user-defined displayName property. The taskName parameter must be used for anonymous functions missing a displayName property.

Since any registered task can be run from the command line, avoid using spaces in task names.

parametertypenote
taskNamestringAn alias for the task function within the task system. Not needed when using named functions for taskFunction.
taskFunction
(required)
functionA task function or composed task - generated by series() and parallel(). Ideally a named function. Task metadata can be attached to provide extra information to the command line.

Returns

When registering a task, nothing is returned.

When retrieving a task, a wrapped task (not the original function) registered as taskName will be returned. The wrapped task has an unwrap() method that will return the original function.

Errors

When registering a task where taskName is missing and taskFunction is anonymous, will throw an error with the message, "Task name must be specified".

Task metadata

propertytypenote
namestringA special property of named functions. Used to register the task.
Note: name is not writable; it cannot be set or changed.
displayNamestringWhen attached to a taskFunction creates an alias for the task. If using characters that aren't allowed in function names, use this property.
descriptionstringWhen attached to a taskFunction provides a description to be printed by the command line when listing tasks.
flagsobjectWhen attached to a taskFunction provides flags to be printed by the command line when listing tasks. The keys of the object represent the flags and the values are their descriptions.
const { task } = require('gulp');

const clean = function(cb) {
// body omitted
cb();
};
clean.displayName = 'clean:all';

task(clean);

function build(cb) {
// body omitted
cb();
}
build.description = 'Build the project';
build.flags = { '-e': 'An example flag' };

task(build);