setup pre-commit hook jshint

Jeanluca Scaljeri picture Jeanluca Scaljeri · Mar 29, 2013 · Viewed 20k times · Source

I recently started a project on github. I've managed to setup automatic testing after each commit using Travis. But now I would like to setup a pre-commit hook with jshint too. So if jshint reports errors, the commit should fail. But is this possible, and if so, how to do this ?

Answer

nelsonic picture nelsonic · Oct 25, 2014

There's an easier way of doing pre-commit checks (e.g. JSHint) in your Node.js workflow:

Install jshint from NPM:

npm install jshint

Next create a .jshintrc file in your project if you don't already have one. e.g: https://github.com/nelsonic/learn-jshint/blob/master/.jshintrc

Now install pre-commit module (and save it as a dev dependency):

npm install pre-commit --save-dev

Next you will need to define the task (script) that will be run for JSHint in your package.json

e.g:

{ "scripts": { "jshint": "jshint -c .jshintrc --exclude-path .gitignore ." } }

then you register the scripts you want to be run pre-commit (also in package.json) e.g:

"pre-commit": [ "jshint", "coverage", "etc" ]

This allows you to have more than just one check in your pre-commit workflow. (We have checks to ensure team members code complies with JSHint, Code Style and Test Coverage is 100%)

For a more detailed tutorial you can share with your team see: https://github.com/nelsonic/learn-pre-commit