.jshintrc
 1  {
 2      // JSHint Default Configuration File (as on JSHint website)
 3      // See http://jshint.com/docs/ for more details
 4  
 5      "maxerr"        : 50,       // {int} Maximum error before stopping
 6  
 7      // Enforcing
 8      "bitwise"       : false,     // true: Prohibit bitwise operators (&, |, ^, etc.)
 9      "camelcase"     : false,     // true: Identifiers must be in camelCase
10      "curly"         : false,     // true: Require {} for every new block or scope
11      "eqeqeq"        : true,     // true: Require triple equals (===) for comparison
12      "forin"         : true,     // true: Require filtering for..in loops with obj.hasOwnProperty()
13      "freeze"        : true,     // true: prohibits overwriting prototypes of native objects such as Array, Date etc.
14      "immed"         : false,    // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
15      "indent"        : 2,        // {int} Number of spaces to use for indentation
16      "latedef"       : true,     // true: Require variables/functions to be defined before being used
17      "newcap"        : true,     // true: Require capitalization of all constructor functions e.g. `new F()`
18      "noarg"         : true,     // true: Prohibit use of `arguments.caller` and `arguments.callee`
19      "noempty"       : false,    // true: Prohibit use of empty blocks
20      "nonbsp"        : true,     // true: Prohibit "non-breaking whitespace" characters.
21      "nonew"         : false,    // true: Prohibit use of constructors for side-effects (without assignment)
22      "plusplus"      : false,    // true: Prohibit use of `++` & `--`
23      "quotmark"      : "single", // Quotation mark consistency:
24                                  //   false    : do nothing (default)
25                                  //   true     : ensure whatever is used is consistent
26                                  //   "single" : require single quotes
27                                  //   "double" : require double quotes
28      "undef"         : true,     // true: Require all non-global variables to be declared (prevents global leaks)
29      "unused"        : true,     // true: Require all defined variables be used
30      "strict"        : true,     // true: Requires all functions run in ES5 Strict Mode
31      "maxparams"     : false,    // {int} Max number of formal params allowed per function
32      "maxdepth"      : 3,        // {int} Max depth of nested blocks (within functions)
33      "maxstatements" : false,    // {int} Max number statements per function
34      "maxcomplexity" : false,    // {int} Max cyclomatic complexity per function
35      "maxlen"        : false,    // {int} Max number of characters per line
36  
37      // Relaxing
38      "asi"           : false,     // true: Tolerate Automatic Semicolon Insertion (no semicolons)
39      "boss"          : false,     // true: Tolerate assignments where comparisons would be expected
40      "debug"         : false,     // true: Allow debugger statements e.g. browser breakpoints.
41      "eqnull"        : false,     // true: Tolerate use of `== null`
42      "es5"           : false,     // true: Allow ES5 syntax (ex: getters and setters)
43      "esnext"        : false,     // true: Allow ES.next (ES6) syntax (ex: `const`)
44      "moz"           : false,     // true: Allow Mozilla specific syntax (extends and overrides esnext features)
45                                   // (ex: `for each`, multiple try/catch, function expression…)
46      "evil"          : false,     // true: Tolerate use of `eval` and `new Function()`
47      "expr"          : false,     // true: Tolerate `ExpressionStatement` as Programs
48      "funcscope"     : false,     // true: Tolerate defining variables inside control statements
49      "globalstrict"  : false,     // true: Allow global "use strict" (also enables 'strict')
50      "iterator"      : false,     // true: Tolerate using the `__iterator__` property
51      "lastsemic"     : false,     // true: Tolerate omitting a semicolon for the last statement of a 1-line block
52      "laxbreak"      : false,     // true: Tolerate possibly unsafe line breakings
53      "laxcomma"      : false,     // true: Tolerate comma-first style coding
54      "loopfunc"      : false,     // true: Tolerate functions being defined in loops
55      "multistr"      : false,     // true: Tolerate multi-line strings
56      "noyield"       : false,     // true: Tolerate generator functions with no yield statement in them.
57      "notypeof"      : false,     // true: Tolerate invalid typeof operator values
58      "proto"         : false,     // true: Tolerate using the `__proto__` property
59      "scripturl"     : false,     // true: Tolerate script-targeted URLs
60      "shadow"        : true,      // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
61      "sub"           : false,     // true: Tolerate using `[]` notation when it can still be expressed in dot notation
62      "supernew"      : false,     // true: Tolerate `new function () { ... };` and `new Object;`
63      "validthis"     : false,     // true: Tolerate using this in a non-constructor function
64  
65      // Environments
66      "browser"       : true,     // Web Browser (window, document, etc)
67      "browserify"    : true,     // Browserify (node.js code in the browser)
68      "couch"         : false,    // CouchDB
69      "devel"         : true,     // Development/debugging (alert, confirm, etc)
70      "dojo"          : false,    // Dojo Toolkit
71      "jasmine"       : false,    // Jasmine
72      "jquery"        : false,    // jQuery
73      "mocha"         : true,     // Mocha
74      "mootools"      : false,    // MooTools
75      "node"          : true,     // Node.js
76      "nonstandard"   : false,    // Widely adopted globals (escape, unescape, etc)
77      "prototypejs"   : false,    // Prototype and Scriptaculous
78      "qunit"         : false,    // QUnit
79      "rhino"         : false,    // Rhino
80      "shelljs"       : false,    // ShellJS
81      "worker"        : false,    // Web Workers
82      "wsh"           : false,    // Windows Scripting Host
83      "yui"           : false,    // Yahoo User Interface
84  
85      // Custom Globals
86      "globals"       : {
87          "module": true
88      }        // additional predefined global variables
89  }