GithubHelp home page GithubHelp logo

itrauco / bob Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cliffano/bob

1.0 1.0 0.0 1.05 MB

Minimalist-omakase build tool for node.js projects

Home Page: http://blog.cliffano.com/tag/bob/

License: MIT License

JavaScript 100.00%

bob's Introduction

Avatar

Build Status Dependencies Status Coverage Status Published Version
npm Badge

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.

Task Description Default Type Alternative Type(s)
clean Delete .bob directory rimraf -
complexity Run code complexity checker against *.js files in lib/ directory plato jscheckstyle
coverage Check code coverage mocha-istanbul buster-istanbul
dep Install dependencies specified in package.json npm -
depgraph Generate module dependencies graph madge -
doc Generate code documentation jsdoc dox-foundation
lint Lint *.js files in lib/ and test/ directories jshint nodelint
nuke TODO Kill all processes with command containing the string 'node' - -
package Create an artifact file in .bob/artifact/ directory tar.gz -
publish Publish artifact file to a repository npm -
restart Restart application npm -
rmdep Remove node_modules directory. rimraf -
send TODO Send artifact file to a remote server. scp sendman
site Generate web site. ae86 buildbranch
start Start application npm -
status Status application npm -
stop Stop application npm -
test Execute unit test files in test/ directory mocha buster, nodeunit, vows
test-acceptance Execute acceptance test files in test-acceptance/ directory mocha cucumber
test-integration Execute integration test files in test-integration/ directory mocha buster, cmdt
test-performance Execute performance test files in test-performance/ directory mocha -
updep Upgrade all dependencies to latest version pkjutil -
versionup Upgrade patch version number in package.json file pkjutil -

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

Developer's Guide

Build reports:

Videos:

bob's People

Contributors

cliffano avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.