.jshintrc檔案和各項詳細解讀
阿新 • • 發佈:2019-02-04
{ // // 強制選項 // // 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 } }