-
Node.js is a V8 based framework for writing Javascript applications outside the browser.
-
JSLint is a code quality tool that checks for problems in Javascript programs.
-
nodelint lets you run JSLint from the command line.
-
nodelint currently supports node version 0.4.x and tested with 0.5.9 so should run on 0.6.x
npm:
$ npm install nodelint
If you clone nodelint from Github, you should init JSLint submodule:
$ git submodule update --init
You can use nodelint
directly if you have node
in your $PATH,
or if you installed it using npm -g
:
$ nodelint path/to/your/file.js
Otherwise, you need to run it with node:
$ node path/to/nodelint path/to/your/file.js
You can also specify a directory param and nodelint will find all .js files under that directory and its subdirectories:
$ node path/to/nodelint dir1/ dir2/
Enjoy!
You can override default JSLint options by passing config file with the optional --config
parameter:
$ nodelint file1 file2 dir1 dir2 --config path/to/your/config/file.js
For example, if the default config.js has:
var options = {
adsafe : false,
bitwise : true,
...
"predef" : []
};
And your own path/to/your/config/file.js looks like:
var options = {
bitwise : false,
browser : false
};
Then the final options used will be:
var options = {
adsafe : false,
bitwise : false,
browser : false,
...
"predef" : []
};
Take a look at JSLint's options to see what to put in the options
variable.
You can also add your configuration inside the JS files itself: JSLint will use this one instead of the global one.
Simply add some comments at the beginning of the file. Note that there is no space between /* and global and between /* and jslint:
// define your global objects:
/*global YUI, JQuery */
// define your jslint-options:
/*jslint white: true, onevar: true, undef: true, nomen: true */
By default nodelint uses an internal reporter
to output it's results to the console.
There may be times when a more customizable reporting system might be needed
(i.e. IDE/Text Editor integrations or customized console outputs).
nodelint
allows you to designate a custom reporter for outputting the results
from JSLint's run. This reporter
will override the default one
built into nodelint. To utilize a custom reporter first create a js file that
exports reporter
function:
example-reporter.js
:
var util = require('util');
function report(results) {
var len = results.length;
util.puts(len + ' error' + ((len === 1) ? '' : 's'));
}
exports.report = report;
Then when you run nodelint from the command line, pass in the customized reporter:
$ ./nodelint path/to/file.js --reporter path/to/file/example-reporter.js
For brevity sake, this is a fairly simple reporter.
nodelint
includes some build-in reportes for VIM, Textmate and JetBrains IDEA integration.
Also it include XML reporter, that produces reports which can also be integrated with a Continuous Integration server like Hudson using the Violations Plugin.
Please see the [wiki][wiki] for integration with various editors.
To contribute any patches, simply fork this repository using GitHub and send a pull request to me <http://github.com/tav>. Thanks!
-
tav, wrote nodelint
-
Felix Geisendörfer, clarified Node.js specific details
-
Douglas Crockford, wrote the original JSLint and rhino.js runner
-
Nathan Landis, updated nodelint to Node's new API.
-
Oleg Efimov, added support for overridable configurations, running nodelint from a symlink and updates to reflect Node.js API changes.
-
Matthew Kitt, added support for configurable reporters, various code cleanups and improvements including updates to reflect Node.js API changes.
-
Corey Hart, updated nodelint with multiple files and config support.
-
Mamading Ceesay, added support for using nodelint within Emacs.
-
Matt Ranney, updated nodelint to use sys.error.
-
Cliffano Subagio, added npm installation support, XML reporter, and directory param support.
-
Clemens Akens, updated to latest JSLint from Crockford repo
-
Paul Armstrong, updates to reflect Node.js and npm API changes