Gear.js is an easy to use, simple to extend, and powerful build system. Chain tasks together to build projects with ease.
Features:
- Basic building blocks that can be combined to perform complex builds.
- Tasks are simply defined and keep system internals to a minimum.
- Asynchronous execution.
- Extensible task loading via NPM, file, or directory.
- Advanced flow control for complex task execution.
- Runs in Node.js and the browser.
To get the most out of Gear.js, you will want to install gear-lib which contains tasks for linting, minifying, and deploying JS/CSS assets.
$ npm install gear
$ npm install gear-lib
new Queue()
.read('foo.js')
.log('read foo.js')
.inspect()
.write('foobarbaz.js')
.run();
new Queue()
.read(['foo.js', {name: 'bar.js'}, 'baz.js'])
.log('read foo.js')
.inspect()
.write(['newfoo.js', 'newbar.js']) // Not writing 'baz.js'
.run();
new Queue()
.read('foo.js')
.log('Parallel Tasks')
.tasks({
read: {task: ['read', ['foo.js', 'bar.js', 'baz.js']]},
combine: {requires: 'read', task: 'concat'},
minify: {requires: 'combine', task: 'jsminify'},
print: {requires: 'minify', task: 'inspect'}, // Runs when read, combine, and minify complete
parallel: {task: ['log', "Hello Gear.js world!"]} // Run parallel to read
}).run();