tree()#

Fetches the current task dependency tree - in the rare case that it is needed.

Generally, tree() won't be used by gulp consumers, but it is exposed so the CLI can show the dependency graph of the tasks defined in a gulpfile.

Usage#

Example gulpfile:

const { series, parallel } = require('gulp');
function one(cb) {
// body omitted
cb();
}
function two(cb) {
// body omitted
cb();
}
function three(cb) {
// body omitted
cb();
}
const four = series(one, two);
const five = series(four,
parallel(three, function(cb) {
// Body omitted
cb();
})
);
module.exports = { one, two, three, four, five };

Output for tree():

{
label: 'Tasks',
nodes: [ 'one', 'two', 'three', 'four', 'five' ]
}

Output for tree({ deep: true }):

{
label: "Tasks",
nodes: [
{
label: "one",
type: "task",
nodes: []
},
{
label: "two",
type: "task",
nodes: []
},
{
label: "three",
type: "task",
nodes: []
},
{
label: "four",
type: "task",
nodes: [
{
label: "<series>",
type: "function",
branch: true,
nodes: [
{
label: "one",
type: "function",
nodes: []
},
{
label: "two",
type: "function",
nodes: []
}
]
}
]
},
{
label: "five",
type: "task",
nodes: [
{
label: "<series>",
type: "function",
branch: true,
nodes: [
{
label: "<series>",
type: "function",
branch: true,
nodes: [
{
label: "one",
type: "function",
nodes: []
},
{
label: "two",
type: "function",
nodes: []
}
]
},
{
label: "<parallel>",
type: "function",
branch: true,
nodes: [
{
label: "three",
type: "function",
nodes: []
},
{
label: "<anonymous>",
type: "function",
nodes: []
}
]
}
]
}
]
}
]
}

Signature#

tree([options])

Parameters#

parametertypenote
optionsobjectDetailed in Options below.

Returns#

An object detailing the tree of registered tasks - containing nested objects with 'label' and 'nodes' properties (which is archy compatible).

Each object may have a type property that can be used to determine if the node is a task or function.

Each object may have a branch property that, when true, indicates the node was created using series() or parallel().

Options#

nametypedefaultnote
deepbooleanfalseIf true, the entire tree will be returned. When false, only top level tasks will be returned.