{ "env": { "browser": true, "amd": true, "es6": true }, "globals": { "define": true, "$": true, "console": true }, "parserOptions": { "sourceType": "module", "ecmaVersion": 8 }, "parser": "babel-eslint", "extends": [ "eslint:recommended" ], "rules": { "no-console": 1, //if, while等条件中不允许使用“=” "no-cond-assign": [2, "always"], // 禁止在条件中使用常量表达式 // if (false) { // doSomethingUnfinished(); // } //cuowu "no-constant-condition": 2, // 程序中不能出现debugger "no-debugger": 2, // 函数的参数名称不能重复 "no-dupe-args": 2, // 对象的属性名称不能重复 "no-dupe-keys": 2, // switch的case不能重复 "no-duplicate-case": 2, // 禁止把全局对象 (Math 和 JSON) 作为函数调用 错误:var math = Math(); "no-obj-calls": 2, // 禁止正则表达式字面量中出现多个空格 "no-regex-spaces": 2, "no-control-regex": 0, // 禁用稀疏数组 "no-sparse-arrays": 2, // 禁止出现令人困惑的多行表达式 "no-unexpected-multiline": 2, // 禁止在return、throw、continue 和 break语句之后出现不可达代码 "no-unreachable": 2, // 要求使用 isNaN() 检查 NaN "use-isnan": 2, // 强制 typeof 表达式与有效的字符串进行比较 // typeof foo === "undefined" 错误 "valid-typeof": 2, // 使用 === 替代 == allow-null允许null和undefined== // 禁用 arguments.caller 或 arguments.callee "no-caller": 2, // 禁止在没有类型检查操作符的情况下与 null 进行比较 "no-eq-null": 1, // 禁用 eval() "no-eval": 2, // 禁止扩展原生类型 "no-extend-native": 0, // 禁止不必要的 .bind() 调用 "no-extra-bind": 2, //禁止不必要的bool转换 "no-extra-boolean-cast": 2, //禁止多余的冒号 "no-extra-semi": 2, //禁止switch穿透 "no-fallthrough": 1, //禁止省略浮点数中的0 .5 3. "no-floating-decimal": 2, //禁止重复的函数声明 "no-func-assign": 2, // 禁用不必要的标签 "no-extra-label": 2, // 禁止使用 var 多次声明同一变量 "no-redeclare": 2, // 禁用未声明的变量,除非它们在 /*global */ 注释中被提到 "no-undef": 2, // 禁止出现未使用过的变量 "no-unused-vars": 1, // 不允许在变量定义之前使用它们 "no-use-before-define": 0, // 数组和对象键值对最后一个逗号, never参数:不能带末尾的逗号, always参数:必须带末尾的逗号, // always-multiline:多行模式必须带逗号,单行模式不能带逗号 "comma-dangle": [1, "never"], // 禁止修改 const 声明的变量 "no-const-assign": 2, // 禁止类成员中出现重复的名称 "no-dupe-class-members": 2, // 禁止 if 作为唯一的语句出现在 else 语句中 "no-lonely-if": 1, // 禁止 if 语句中有 return 之后有 else "no-else-return": 1, "array-bracket-spacing": [2, "never"], // 禁止或强制在单行代码块中使用空格(禁用) "block-spacing": [1, "never"], // 强制使用一致的缩进 第二个参数为 "tab" 时,会使用tab // 为数值,表示缩进空格数 "indent": [2, 4, { "SwitchCase": 1 }], // if while function 后面的{必须与if在同一行,java风格。 "brace-style": [2, "1tbs", { "allowSingleLine": true }], // 双峰驼命名格式 "camelcase": 2, // 控制逗号前后的空格 "comma-spacing": [2, { "before": false, "after": true }], // 控制逗号在行尾出现还是在行首出现 (默认行尾) // http://eslint.org/docs/rules/comma-style "comma-style": [2, "last"], //"SwitchCase" (默认:0) 强制 switch 语句中的 case 子句的缩进水平 // 以方括号取对象属性时,[ 后面和 ] 前面是否需要空格, 可选参数 never, always "computed-property-spacing": [2, "never"], // 强制使用命名的 function 表达式 "func-names": 0, // 文件末尾强制换行 "eol-last": 2, // 强制在对象字面量的属性中键和值之间使用一致的间距 "key-spacing": [2, { "beforeColon": false, "afterColon": true }], // 强制使用一致的换行风格 "linebreak-style": [1, "unix"], // 要求在注释周围有空行 ( 要求在块级注释之前有一空行) "lines-around-comment": [1, { "beforeBlockComment": true }], // 要求构造函数首字母大写 (要求调用 new 操作符时有首字母大小的函数,允许调用首字母大写的函数时没有 new 操作符。) "new-cap": [2, { "newIsCap": true, "capIsNew": false }], // 要求调用无参构造函数时有圆括号 "new-parens": 2, // 禁止使用 Array 构造函数 "no-array-constructor": 2, // 禁用按位运算符 "no-bitwise": 2, // 要求 return 语句之前有一空行 // "newline-before-return": 1, // 禁止在代码行后使用内联注释 "no-inline-comments": 1, // 禁止混合使用不同的操作符 "no-mixed-operators": 0, // 不允许空格和 tab 混合缩进 "no-mixed-spaces-and-tabs": 2, // 不允许多个空行 "no-multiple-empty-lines": [2, { "max": 2 }], // 不允许使用嵌套的三元表达式 "no-nested-ternary": 2, // 禁止使用 Object 的构造函数 "no-new-object": 2, // 禁止使用特定的语法 "no-restricted-syntax": 0, // 禁止 function 标识符和括号之间出现空格 "no-spaced-func": 2, // 禁用行尾空格 "no-trailing-spaces": 2, // 禁止可以在有更简单的可替代的表达式时使用三元操作符 "no-unneeded-ternary": 2, // 禁止属性前有空白 "no-whitespace-before-property": 0, // 强制在花括号中使用一致的空格 "object-curly-spacing": 2, // 强制将对象的属性放在不同的行上 "object-property-newline": 2, // 强制函数中的变量要么一起声明要么分开声明 "one-var": [2, { "initialized": "never" }], // 要求或禁止在 var 声明周围换行 "one-var-declaration-per-line": 1, // 强制操作符使用一致的换行符 "operator-linebreak": [2, "after", { "overrides": { "?": "before", ":": "before" } }], // 强制使用一致的反勾号、双引号或单引号 "quotes": [2, "single", "avoid-escape"], // 要求使用 JSDoc 注释 "require-jsdoc": 1, // 要求或禁止使用分号而不是 ASI(这个才是控制行尾部分号的,) "semi": [2, "always"], // 强制分号之前和之后使用一致的空格 "semi-spacing": 2, // 强制在块之前使用一致的空格 "space-before-blocks": [2, "always"], // 强制在 function的左括号之前使用一致的空格 "space-before-function-paren": [2, "always"], // 强制在圆括号内使用一致的空格 "space-in-parens": [2, "never"], // 要求操作符周围有空格 "space-infix-ops": 1, "keyword-spacing": 1, // 强制在一元操作符前后使用一致的空格 "space-unary-ops": [2, { "words": true, "nonwords": false }] } }