# jslint(1) -- a code quality tool

## SYNOPSIS

jslint.js [--anon] [--ass] [--bitwise] [--browser] [--closure] [--color] [--continue] [--debug] [--devel] [--edition] [--eqeq] [--es5] [--evil] [--forin] [--indent] [--json] [--maxerr] [--maxlen] [--newcap] [--node] [--nomen] [--on] [--passfail] [--plusplus] [--predef] [--properties] [--regexp] [--rhino] [--sloppy] [--stupid] [--sub] [--terse] [--todo] [--undef] [--unparam] [--vars] [--white] [--] <scriptfile>...

## DESCRIPTION

JSLint is a static analysis tool to locate and correct style problems in Javascript (ECMAScript etc.) source code.

## META OPTIONS

`--color` write output in color

`--terse` report one error per line with parseable source file/line

`--json` output in JSON format

`--edition` specify which edition of jslint to use

## LINTING OPTIONS

`--ass` Tolerate assignment expressions

`--bitwise` Tolerate bitwise operators

`--browser` Assume a browser

`--closure` Tolerate Google Closure idioms

`--continue` Tolerate continue

`--debug` Tolerate debugger statements

`--devel` Assume console,alert, ...

`--eqeq` Tolerate == and !=

`--evil` Tolerate eval

`--forin` Tolerate unfiltered for in

`--indent` Strict white space indentation

`--maxerr` Maximum number of errors

`--maxlen` Maximum line length

`--newcap` Tolerate uncapitalized constructors

`--node` Assume Node.js

`--nomen` Tolerate dangling underscore in identifiers

`--passfail` Stop on first error

`--plusplus` Tolerate ++ and --

`--predef` Declare additional predefined globals

`--properties` Require all property names to be declared with /properties/

`--regexp` Tolerate . and [^...]. in /RegExp/

`--rhino` Assume Rhino

`--sloppy` Tolerate missing 'use strict' pragma

`--stupid` Tolerate stupidity (typically, use of sync functions)

`--sub` Tolerate inefficient subscripting

`--todo` Tolerate TODO comments

`--unparam` Tolerate unused parameters

`--vars` Tolerate many var statements per function

`--white` Tolerate messy white space

## DEPRECATED OPTIONS

`--anon` Tolerate no space in anonymous function definition

`--es5` Tolerate ECMAScript 5 syntax

`--undef` Tolerate variables used before declaration

`--on` Tolerate HTML event handlers

`--windows` Assume existence of Windows globals

## EXAMPLES

Multiple files:

    jslint lib/color.js lib/reporter.js

All JSLint options supported

    jslint --white --vars --regexp lib/color.js

Defaults to true, but you can specify false

    jslint --bitwise false lib/color.js

Pass arrays

    jslint --predef $ --predef Backbone lib/color.js

JSLint your entire project

    find . -name "*.js" -print0 | xargs -0 jslint

Using JSLint with a config file

Start with the included example jslintrc file and customize your options per project or copy it to $HOME/.jslintrc to apply your setting globally

## INSTALLATION

To install jslint globally, use npm install jslint -g

To install jslint locally, use npm install jslint

When installed locally, jslint can be run as ./node_modules/.bin/jslint

## FILES

jslint looks for the following config files at startup:

$HOME/.jslintrc ./jslintrc ./.jslintrc

The format of a jslint options file is a JSON file containing a single object where the keys are jslint option names and the values are the option argument; use `true` to enable and `false` to disable boolean options. An example of a valid option file is:

{ vars: true, white: true, maxlen: 100, predef: "foo,bar,baz" }

Comments are not allowed in option files.

## PRECEDENCE

The order of precedence for options is as follows:

1. in the $HOME/.jslintrc
2. in ./jslintrc or ./.jslintrc
3. on the command line
4. in a /*jslint*/ comment

A higher number indicates a higher precedence, i.e. command line options override options specified by an options file, and /*jslint*/ comments in the file being examined have the highest precedence.

## EDITIONS

You can now specify the edition of jslint with the --edition option.

Future versions of this package may include newer editions of jslint; to always use the latest edition of jslint, specify --edition=latest:

    jslint --edition=latest lib/*.js

The default edition of jslint will remain stable as long as the leading two components of the version number are the same. New minor editions may have a different default edition.

The previous version of this package (0.1.9) shipped an older edition (2013-02-03) of jslint. To revert to that behavior but still have the new config file features, upgrade to 0.2.1 of this package and specify `edition: '2012-02-03'` in your jslintrc file or `--edition=2013-02-03` on the command line.

We recommend the following practices:

### If your project is in maintenance mode

Choose an edition of jslint and hardcode it into your project's lint config files, e.g., `edition: '2012-02-03'`. Specify a fixed version of jslint (e.g., "0.2.1") as a devDependency in package.json

### If your project needs temporary stability (e.g., release phase)

Use the default edition of jslint (no `--edition` argument needed) and specify a fixed minor version (e.g, "~0.2") as a devDependency in package.json

### If you want the bleeding-edge version

Specify `edition: 'latest'` and use any 'latest version' behavior in package.json, e.g., "*" or ">0.2.1"

## RETURN VALUES

jslint returns 1 if it found any problems, 0 otherwise.

## AUTHOR

jslint is written and maintained by Douglas Crockford https://github.com/douglascrockford/JSLint

This package is node-jslint, which provides a command-line interface for running jslint using the nodejs platform. node-jslint was written by Reid Burke and is maintained by Reid Burke, Ryuichi Okumura, and Sam Mikes.

## BUGS

There are no known bugs. Submit bugs to https://github.com/reid/node-jslint/issues

Note that if you are reporting a problem with the way jslint works rather than the way the command-line tools work, we will probably refer you to the JSLint community https://plus.google.com/communities/104441363299760713736 or the issue tracker at https://github.com/douglascrockford/JSLint/issues