目录

jshint配置详解


一、基础配置文件

  • 1、参数文件配置 (.jshintrc)

      {
      // JSHint 默认配置文件
      // [点击查看详情](http://jshint.com/docs/)
    
      		"maxerr": 50,// {int} 最大数量错误停止
    
      // Enforcing
      		"bitwise": true,// true: 停止位运算符 (&, |, ^, etc.)
      		"camelcase" : false,// true: 标志使用驼峰命名法
      		"curly"  : true,// true: 块或范围需要{}
      		"eqeqeq" : true,// true:  (===) 使用恒等来比较
      		"forin"  : true,// true: 在 for..in 循环中过滤 obj.hasOwnProperty()
      		"freeze" : true,// true: prohibits overwriting prototypes of native objects such as Array, Date etc.
      		"immed"  : false,// true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
      		"latedef": false,// true: Require variables/functions to be defined before being used
      		"newcap" : false,// true: Require capitalization of all constructor functions e.g. `new F()`
      		"noarg"  : true,// true: Prohibit use of `arguments.caller` and `arguments.callee`
      		"noempty": true,// true: Prohibit use of empty blocks
      		"nonbsp" : true,// true: Prohibit "non-breaking whitespace" characters.
      		"nonew"  : false,// true: Prohibit use of constructors for side-effects (without assignment)
      		"plusplus"  : false,// true: Prohibit use of `++` and `--`
      		"quotmark"  : false,// Quotation mark consistency:
      											 //   false: do nothing (default)
      											 //   true : ensure whatever is used is consistent
      											 //   "single" : require single quotes
      											 //   "double" : require double quotes
      		"undef"  : true,// true: Require all non-global variables to be declared (prevents global leaks)
      		"unused" : true,// Unused variables:
      											 //   true : all variables, last function parameter
      											 //   "vars": all variables only
      											 //   "strict" : all variables, all function parameters
      		"strict" : true,// true: Requires all functions run in ES5 Strict Mode
      		"maxparams" : false,// {int} Max number of formal params allowed per function
      		"maxdepth"  : false,// {int} Max depth of nested blocks (within functions)
      		"maxstatements" : false,// {int} Max number statements per function
      		"maxcomplexity" : false,// {int} Max cyclomatic complexity per function
      		"maxlen" : false,// {int} Max number of characters per line
      		"varstmt": false,// true: Disallow any var statements. Only `let` and `const` are allowed.
    
      // Relaxing
      		"asi"    : false,// true: Tolerate Automatic Semicolon Insertion (no semicolons)
      		"boss"   : false,// true: Tolerate assignments where comparisons would be expected
      		"debug"  : false,// true: Allow debugger statements e.g. browser breakpoints.
      		"eqnull" : false,// true: Tolerate use of `== null`
      		"esversion" : 5,// {int} Specify the ECMAScript version to which the code must adhere.
      		"moz"    : false,// true: Allow Mozilla specific syntax (extends and overrides esnext features)
      												// (ex: `for each`, multiple try/catch, function expression…)
      		"evil"   : false,// true: Tolerate use of `eval` and `new Function()`
      		"expr"   : false,// true: Tolerate `ExpressionStatement` as Programs
      		"funcscope" : false,// true: Tolerate defining variables inside control statements
      		"globalstrict"  : false,// true: Allow global "use strict" (also enables 'strict')
      		"iterator"  : false,// true: Tolerate using the `__iterator__` property
      		"lastsemic" : false,// true: Tolerate omitting a semicolon for the last statement of a 1-line block
      		"laxbreak"  : false,// true: Tolerate possibly unsafe line breakings
      		"laxcomma"  : false,// true: Tolerate comma-first style coding
      		"loopfunc"  : false,// true: Tolerate functions being defined in loops
      		"multistr"  : false,// true: Tolerate multi-line strings
      		"noyield": false,// true: Tolerate generator functions with no yield statement in them.
      		"notypeof"  : false,// true: Tolerate invalid typeof operator values
      		"proto"  : false,// true: Tolerate using the `__proto__` property
      		"scripturl" : false,// true: Tolerate script-targeted URLs
      		"shadow" : false,// true: Allows re-define variables later in code e.g. `var x=1; x=2;`
      		"sub"    : false,// true: Tolerate using `[]` notation when it can still be expressed in dot notation
      		"supernew"  : false,// true: Tolerate `new function () { ... };` and `new Object;`
      		"validthis" : false,// true: Tolerate using this in a non-constructor function
    
      // Environments
      		"browser": true,// Web Browser (window, document, etc)
      		"browserify": false,// Browserify (node.js code in the browser)
      		"couch"  : false,// CouchDB
      		"devel"  : true,// Development/debugging (alert, confirm, etc)
      		"dojo"   : false,// Dojo Toolkit
      		"jasmine": false,// Jasmine
      		"jquery" : false,// jQuery
      		"mocha"  : true,// Mocha
      		"mootools"  : false,// MooTools
      		"node"   : false,// Node.js
      		"nonstandard": false,// Widely adopted globals (escape, unescape, etc)
      		"phantom": false,// PhantomJS
      		"prototypejs": false,// Prototype and Scriptaculous
      		"qunit"  : false,// QUnit
      		"rhino"  : false,// Rhino
      		"shelljs": false,// ShellJS
      		"typed"  : false,// Globals for typed array constructions
      		"worker" : false,// Web Workers
      		"wsh"    : false,// Windows Scripting Host
      		"yui"    : false,// Yahoo User Interface
    
      // Custom Globals
      		"globals": {}   // additional predefined global variables
      }
    
  • 2、排除文件或正则匹配多个文件或目录.jshintignore

      	ignored.js
      	another.js
      	ignoreimmediatechildren/*.js
      	ignoreincludingsubdirectories/**