Skip to content

Latest commit

 

History

History
217 lines (156 loc) · 3.97 KB

.verb.md

File metadata and controls

217 lines (156 loc) · 3.97 KB

Usage

const Base = require('base');
const tasks = require('base-task');

const base = new Base();
base.use(tasks());

/**
 * Define tasks
 */

base.task('foo', function(cb) {
  console.log('this is foo!');
  cb();
});
base.task('bar', function(cb) {
  console.log('this is bar!');
  cb();
});

/**
 * Build tasks
 */

base.build(['foo', 'bar'])
  .then(() => {
    // this is foo!
    // this is bar!
    console.log('done!');
  })
  .catch(console.error)

See the [composer][] documentation for more details, or to create bug reports related to running or registering tasks.

API

.task

Register a task

Params

  • name {String}: Task name to register (tasks are cached on app.tasks)
  • dependencies {String|Array|Function}: String, list or array of tasks.
  • callback {Function}: Function to be called when the task is executed. Task functions should either return a stream or call the callback to let [composer][] know when the task is finished.

Examples

Register a task.

app.task('default', function() {
  // return the stream to signal "done"
  return app.src('pages/*.hbs')
    .pipe(app.dest('dist'));
});

Register a task with dependencies (other tasks to run before executing the task):

app.task('site', ['styles'], function() {
  return app.src('pages/*.hbs')
    .pipe(app.dest('dist'));
});

app.task('default', ['site']);

Get a task

const task = app.task('site');

.build

Run a task or array of tasks.

Promise examples

// run the "default" task, if defined
app.build();
app.build('default');

// run an array of tasks
app.build(['foo', 'bar'])
  .then(() => console.log('done!'))
  .catch(console.error);

Callback examples

// run the "default" task, if defined
app.build(function(err, results) {
  if (err) return console.error(err);
  console.log(results);
});

app.build('default', function(err, results) {
  if (err) return console.error(err);
  console.log(results);
});

app.build(['foo', 'bar'], function(err, results) {
  if (err) return console.error(err);
  console.log(results);
});

.series

Compose task or list of tasks into a single function that runs the tasks in series.

Params

  • tasks {String|Array|Function}: List of tasks by name, function, or array of names/functions.
  • returns {Function}: Composed function that may take a callback function.

Example

app.task('foo', function(cb) {
  console.log('this is foo');
  cb();
});

const build = app.series('foo', function(cb) {
  console.log('this is bar');
  cb();
});

build(function(err) {
  if (err) return console.error(err);
  console.log('finished');
});
//=> this is foo
//=> this is bar
//=> finished

.parallel

Compose task or list of tasks into a single function that runs the tasks in parallel.

Params

  • tasks {String|Array|Function}: List of tasks by name, function, or array of names/functions.
  • returns {Function}: Composed function that may take a callback function.

Example

app.task('foo', function(cb) {
  setTimeout(function() {
    console.log('this is foo');
    cb();
  }, 500);
});

const build = app.parallel('foo', function(cb) {
  console.log('this is bar');
  cb();
});

build(function(err) {
  if (err) return console.error(err);
  console.log('finished');
});
//=> this is bar
//=> this is foo
//=> finished

Events

The following events are emitted by [composer][]. See the composer docs for more details

on.task

Emitted when a task is register, starting and finished.

app.on('task', function(task) {
  console.log(task.status);
  //=> 'register'
});

on.build

Emitted when a build is starting and finished.

app.on('build', function(build) {
  console.log(build.status);
  //=> 'starting'
});

History

v2.0.0

  • Bumped [composer][] to v2.0.0.

v0.3.0

  • Bumped [composer][] to v0.11.0, so the .watch method is no longer included by default. To add .watch, use the [base-watch][] plugin.