1. 程式人生 > >.jshintrc檔案和各項詳細解讀

.jshintrc檔案和各項詳細解讀

{
  //
  // 強制選項
  //
  // When set to true, these options will make JSHint produce more warnings about your code.

  /**
   * 是否阻止位運算子的使用
   *
   * 有時候為了快速取整或判斷,會使用一些位運算子,所以此項設定為 false
   */
  "bitwise": false,
  /**
   * 是否要求變數都使用駝峰命名
   *
   * 預設開啟
   * 棄用,見jscs專案
   */
  "camelcase": true,
  /**
   * 是否要求 for/while/if 等迴圈和條件語句中總是使用花括號
   *
   *
   */
  "curly": true,
  /**
   * 是否強制使用嚴格等號
   *
   * 有時候需要判斷 null,所以預設不嚴格要求
   */
  "eqeqeq": true,
  /**
   * true: 預設要求所有函式執行在ES5
   * 棄用
   */
  "es3": true,
  "es5": true,
  "esnext": true,
  /**
   * 選擇ES版本,3,5,6
   */
  //"esversion": 6,
  /**
   * for-in 語句是否要求過濾原型鏈上的物件
   * 新增 obj.hasOwnProperty(prop)
   * 預設開啟
   */
  "forin": true,
  /**
    * 是否阻止修改或拓展基本物件(Array、Date 等)的原型鏈
    *
    * 原型鏈汙染比較危險,預設開啟
    */
  "freeze": true,
  /**
   * 變數只能在函式域上定義,在程式碼塊上定義的變數給出警告
   */
  "funcscope": true,
  /**
   * 當使用JS保留字時,顯示警告
   */
  "futurehostile": true,
  /**
   * 是否要求自執行的方法使用括號括起  (function () { } ());
   * 預設開啟
   * 棄用,見jscs專案
   */
  "immed": true,
  /**
   * 指定tab縮排寬度為 2 個空格
   *
   * 棄用,見jscs專案
   */
  "indent": 4,
  /**
   * 要求變數在使用前宣告,
   */
  "latedef": true,
  /**
   * 程式碼塊巢狀深度
   */
  "maxdepth": 4,
  /**
   * 最大錯誤提示數量,預設50
   */
  "maxerr": 10000,
  /**
    * 單行最大長度
    *
    * 棄用,見jscs專案
    */
  "maxlen": 200,
  /**
   * 設定函式正式引數的最大數量
   *
   */
  "maxparams": 4,
  /**
   * 一個函式內宣告語句的最大數量
   *
   */
  "maxstatements": 1000,
  /**
   * 要求建構函式大寫
   *
   * 棄用,見jscs專案
   */
  "newcap": true,
  /**
   * 不允許使用 arguments.callee 和 arguments.caller
   */
  "noarg": true,
  /**
   * 不允許使用逗號
   */
  "nocomma": true,
  /**
   * 不允許空的程式碼快,預設關閉
   *
   * 棄用,見jscs專案
   */
  "noempty": false,
  /**
   * 不允許使用 "non-breaking whitespace"。
   *
   * 這些字元在非 UTF8 頁面會導致程式碼失效
   */
  "nonbsp": true,
  /**
   * 阻止直接使用 new 呼叫建構函式的語句(不賦值物件)
   *
   * // OK
   * var a = new Animal();
   *
   * // Warn
   * new Animal();
   */
  "nonew": true,
  /**
     * 阻止直接使用 typeof 操作符
     *
     * 慎用
     */
  "notypeof": false,
  /**
  * 字串引號
  *
  * 預設要求使用單引號
  true-- 程式碼字串禁止單引號雙引號混用,
  "single"--只允許單引號
  "double"--只允許雙引號。
  * 棄用,見jscs專案
  */
  "quotmark": "single",
  /**
  * 隱藏式宣告
  *
  "inner" - check for variables defined in the same scope only
  "outer" - check for variables defined in outer scopes as well
  false - same as inner
  true - allow variable shadowing
  */
  "shadow": "inner",
  /**
   *  禁止在不必要的時候使用分組運算子
   */
  "singleGroups": true,
  /**
   * 是要求否以 strict 模式檢查
   *
   * 該選項要求檔案有 "use strict;"不全域性要求,需要的模組自行開啟
   */
  "strict": false,
  /**
   * 提示未定義的變數
   *
   * 未定義的變數會容易造成全域性變數,該項開啟
   */
  "undef": true,
  /**
   * 提示未使用的變數
   * vars - to only check for variables, not function parameters
   * strict - to check all variables and parameters.
   * 預設開啟
   */
  "unused": true,
  /**
   * 是否禁止使用var
   * Use `let` or `const` instead.
   */
  "varstmt": false,
  //
  //Relaxing options
  //
  //When set to true, these options will make JSHint produce fewer warnings about your code.

  /**
   * 不顯示缺少分號警告
   */
  "asi": false,
  /**
   *  不顯示在 比較處使用了賦值 的警告資訊。
   */
  "boss": true,
  /**
   * 不顯示程式碼中使用的 debugger 語句預設給出的警告
   */
  "debug": true,
  /**
   * This option tells JSHint that your code uses ES3 array elision elements, or empty elements (for example, [1, , , 4, , , 7]).
   */
  "elision": true,
  /**
   * 不顯示關於 == null的警告
   * 當您想要檢查變數是否為空或未定義時,這種比較往往很有用。
   */
  "eqnull": true,
  /**
   * 不顯示關於 eval 的警告
   *
   */
  "evil": true,
  /**
   * 不顯示 在應該使用複製或函式呼叫的地方使用了表示式 的警告。
   */
  "expr": true,
  /**
   * 不顯示缺少分號的警告
   */
  "lastsemic": false,
  /**
   * 不顯示不安全的折行的警告
   *
   * 棄用,見jscs專案
   */
  "laxbreak": true,
  /**
   * 不顯示逗號放前面的警告,例如:
   *
   * 棄用,見jscs專案
   */
  "laxcomma": true,
  /**
   * 不顯示 在迴圈語句中定義函式 的警告
   */
  "loopfunc": true,
  /**
   * 不顯示 多行字串 的警告
   */
  "multistr": true,
  /**
   * 不允許使用 ++ 和 -- 運算子
   *
   * 預設關閉
   */
  "plusplus": false,
  /**
   * 禁止關於__proto__屬性的警告
   */
  "proto": true,
  /**
   *  true: Prohibit use of empty blocks
   *  該選項控制形如 person['name'] vs. person.name的警告資訊的顯示
   *  棄用,見jscs專案
   */
  "sub": true,
  //
  // Environments
  //
  // These options let JSHint know about some pre-defined global variables.
  /**
   * 暴露瀏覽器屬性的全域性變數,列如 window,document;
  注意:這個選項不暴露變數 alert或 console。
   */
  "browser": true,
  /**
   * 這個選項定義全域性暴露的jQuery庫。
   */
  "jquery": true,
  "devel": true,
  /**
  *這個選項可以用來指定一個沒有正式定義的全域性變數的白名單。配置 globals在單個檔案,看看內聯配置.
  *需要的引用到的js類庫的全域性變數應該加入進來
  */
  "globals": {
    "define": true,
    "module": true,
    "export": true,
    "console": true,
    "THREE": true,
    "TWEEN": true,
    "Stats":true
  }
}