Base plugin that provides a very thin wrapper around <https://github.com/doowb/composer> for adding task methods to your Base application.
npm install base-task> Base plugin that provides a very thin wrapper around https://github.com/doowb/composer for adding task methods to your Base application.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
Install with npm:
``sh`
$ npm install --save base-task
`js
const Base = require('base');
const tasks = require('base-task');
const base = new Base();
base.use(tasks());
/**
* Define tasks
*/
base.task('foo', cb => {
console.log('this is foo!');
cb();
});
base.task('bar', 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.
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.
`js`
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):
`js
app.task('site', ['styles'], function() {
return app.src('pages/*.hbs')
.pipe(app.dest('dist'));
});
app.task('default', ['site']);
`
Get a task
`js`
const task = app.task('site');
Run a task or array of tasks.
Promise examples
`js
// 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
`js
// 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);
});
`
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
`js
app.task('foo', cb => {
console.log('this is foo');
cb();
});
const build = app.series('foo', 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
`
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
`js
app.task('foo', cb => {
setTimeout(function() {
console.log('this is foo');
cb();
}, 500);
});
const build = app.parallel('foo', 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
`
The following events are emitted by composer. See the composer docs for more details
Emitted when a task is register, starting and finished.
`js`
app.on('task', function(task) {
console.log(task.status);
//=> 'register'
});
Emitted when a build is starting and finished.
`js`
app.on('build', function(build) {
console.log(build.status);
//=> 'starting'
});
* Bumped composer to v2.0.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.
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Running Tests
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
`sh`
$ npm install && npm test
Building docs
_(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)_
To generate the readme, run the following command:
`sh`
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Other base plugins you might be interested in:
* base-cli: Plugin for base-methods that maps built-in methods to CLI args (also supports methods from a… more | homepage
* base-generators: Adds project-generator support to your base application. | baseoption application."" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">homepage
* base-option: Adds a few options methods to base, like , enable and disable. See the readme… more | option, enable and disable`. See the readme for the full API."" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">homepage
* base-plugins: Adds 'smart plugin' support to your base application. | homepage
* base-store: Plugin for getting and persisting config values with your base-methods application. Adds a 'store' object… more | homepage
* base: Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | homepage
| Commits | Contributor |
| --- | --- |
| 60 | jonschlinkert |
| 6 | doowb |
| 2 | davequick |
Jon Schlinkert
* GitHub Profile
* Twitter Profile
* LinkedIn Profile
Copyright © 2018, Jon Schlinkert.
Released under the MIT License.
*
_This file was generated by verb-generate-readme, v0.8.0, on November 22, 2018._