npm install -g pliers
Pliers is a build tool that tries really hard to do as little as possible. This allows you to use JavaScript to write your build tasks like you would your applications.
Yes it's called require()
make is an amazing tool, but sometimes you need to do more that just run scripts and create folders. Sometimes it is handy to have a little project context when doing build tasks. pliers is all JavaScript so you can use your existing code and npm modules.
Usage: pliers [options] [task]
Options:
-h, --help output usage information
-V, --version output the version number
-l, --list List all available tasks with descriptions
-b, --bare List task names only
Running pliers will look for a pliers.js in the current working directory.
module.exports = function (pliers) {
pliers('hello', function (done) {
pliers.logger.info('Hello world')
done()
})
}
To run the hello task from the command line:
pliers hello
pliers('test', function (done) {
pliers.exec('./node_modules/.bin/mocha -r should', done)
})
pliers('lint', { description: 'Run jshint all on project JavaScript' }, function (done) {
pliers.exec('jshint lib test', done)
})
pliers('qa', 'test', 'lint')
This will run test task and then the lint task.
pliers qa
Pliers is not very opinionated and has very little API surface area. That said there are a few built in functions.
Executes command using require('child_process').exec
pliers('list', function (done) {
pliers.exec('ls', done)
})
Run another pliers task.
pliers('runner', function (done) {
pliers.run('list')
})
TBC
Create a fileset that can be used to perform tasks on. The following fileset example would return all .js
files in the current directory, excluding those that end in .test.js
.
pliers.filesets('js', __dirname + '/*.js', __dirname + '/*.test.js')
includePatterns
& excludePatterns
can be either a string or an Array if you need multiple glob conditions.
Filesets are calculated using the node-glob
module. The filesets are first generated when they are accessed, this is done using the id
property as follows:
console.log(pliers.filesets.js) // Will output the fileset with the id 'js'
- Paul Serby follow me on twitter @serby
- Ben Gourley
- Dom Harrington
- Built for use at Clock Limited
Licensed under the New BSD License