Skip to main content

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.