bob
v3.1.0
Published
Convention-based build tool for node.js projects.
Downloads
350
Maintainers
Readme
Bob
Convention-based build tool for node.js projects.
Bob provides a set of build-related tasks that work cross-platform and simple to use by following a few convention.
It works with zero configuration and allows minimal customisation when you don't want to use the default type of a particular task.
It only installs the default tools, while alternative tools will be lazy-installed as required.
It doesn't have plugins. It uses various CLI tools and configure their usage in task configuration files.
Installation
npm install -g bob
Project Convention
A project must have:
- package.json file, with at least name and version info
- lib/ directory, where you put your source code
- test/ directory, where you put your test code
Usage
Run Bob: (from your project directory, where package.json is located)
bob clean lint test coverage
Run Bob in robot mode: (generate machine-parsable output when possible)
BOB_MODE=robot bob clean lint test coverage
Run Bob quietly: (only lists tasks, without each task's output)
bob --quiet clean lint test coverage
Tasks
In alphabetical order.
Config
To customise Bob for your project, create a .bob.json file in your project directory, where package.json is located.
To use nodelint instead of default jshint when running bob lint
:
{
"lint": {
"type": "nodelint"
}
}
To add an alias task (called build) which executes clean lint test coverage tasks:
{
"build": "clean lint test coverage"
}
Continuous Integration
###Travis CI
Configure Bob in .travis.yml file:
before_install: "npm install -g bob"
script: "bob clean lint test coverage"
###Jenkins CI
Configure Bob in a Jenkins job with shell script build step:
npm install -g bob
bob clean lint test coverage
Colophon
Build reports:
- Code complexity report
- Unit tests report
- Test coverage report
- Integration tests report
- API Documentation
Videos:
- Evolution of bob (Gource Vizualisation) by Landon Wilkins