您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页.eslintrc的配置

.eslintrc的配置

来源:爱问旅游网
.eslintrc的配置

{

// 环境定义了预定义的全局变量。 \"env\": {

//环境定义了预定义的全局变量。更多在官⽹查看 \"browser\": true, \"node\": true,

\"commonjs\": true, \"amd\": true, \"es6\": true, \"mocha\": true },

// JavaScript 语⾔选项 \"parserOptions\": {

// ECMAScript 版本 \"ecmaVersion\": 6,

\"sourceType\": \"module\", //设置为 \"script\" (默认) 或 \"module\"(如果你的代码是 ECMAScript 模块)。 //想使⽤的额外的语⾔特性: \"ecmaFeatures\": {

// 允许在全局作⽤域下使⽤ return 语句 \"globalReturn\": true, // impliedStric

\"impliedStrict\": true, // 启⽤ JSX \"jsx\": true,

\"modules\": true } },

//-----让eslint⽀持 JSX start \"plugins\": [ \"react\" ],

\"extends\": [

\"eslint:recommended\",

\"plugin:react/recommended\" ],

//-----让eslint⽀持 JSX end

/**

* \"off\" 或 0 - 关闭规则

* \"warn\" 或 1 - 开启规则,使⽤警告级别的错误:warn (不会导致程序退出),

* \"error\" 或 2 - 开启规则,使⽤错误级别的错误:error (当被触发的时候,程序会退出) */

\"rules\": {

//////////////// // 可能的错误 // ////////////////

// 禁⽌条件表达式中出现赋值操作符 \"no-cond-assign\": 2, // 禁⽤ console \"no-console\": 0,

// 禁⽌在条件中使⽤常量表达式 // if (false) {

// doSomethingUnfinished(); // } //cuowu

\"no-constant-condition\": 2,

// 禁⽌在正则表达式中使⽤控制字符 :new RegExp(\"\\x1f\") \"no-control-regex\": 2,

// 数组和对象键值对最后⼀个逗号, never参数:不能带末尾的逗号, always参数:必须带末尾的逗号, // always-multiline:多⾏模式必须带逗号,单⾏模式不能带逗号 \"comma-dangle\": [1, \"never\"], // 禁⽤ debugger \"no-debugger\": 2,

// 禁⽌ function 定义中出现重名参数 \"no-dupe-args\": 2,

// 禁⽌对象字⾯量中出现重复的 key \"no-dupe-keys\": 2,

// 禁⽌重复的 case 标签 \"no-duplicate-case\": 2, // 禁⽌空语句块 \"no-empty\": 2,

// 禁⽌在正则表达式中使⽤空字符集 (/^abc[]/) \"no-empty-character-class\": 2,

// 禁⽌对 catch ⼦句的参数重新赋值 \"no-ex-assign\": 2,

// 禁⽌不必要的布尔转换 \"no-extra-boolean-cast\": 2,

// 禁⽌不必要的括号 //(a * b) + c;//报错

\"no-extra-parens\": 0, // 禁⽌不必要的分号 \"no-extra-semi\": 2,

// 禁⽌对 function 声明重新赋值 \"no-func-assign\": 2,

// 禁⽌在嵌套的块中出现 function 或 var 声明 \"no-inner-declarations\": [2, \"functions\"],

// 禁⽌ RegExp 构造函数中⽆效的正则表达式字符串 \"no-invalid-regexp\": 2,

// 禁⽌在字符串和注释之外不规则的空⽩ \"no-irregular-whitespace\": 2,

// 禁⽌在 in 表达式中出现否定的左操作数 \"no-negated-in-lhs\": 2,

// 禁⽌把全局对象 (Math 和 JSON) 作为函数调⽤ 错误:var math = Math(); \"no-obj-calls\": 2,

// 禁⽌直接使⽤ Object.prototypes 的内置属性 \"no-prototype-builtins\": 0,

// 禁⽌正则表达式字⾯量中出现多个空格 \"no-regex-spaces\": 2, // 禁⽤稀疏数组

\"no-sparse-arrays\": 2,

// 禁⽌出现令⼈困惑的多⾏表达式 \"no-unexpected-multiline\": 2,

// 禁⽌在return、throw、continue 和 break语句之后出现不可达代码 \"no-unreachable\": 2,

// 要求使⽤ isNaN() 检查 NaN \"use-isnan\": 2,

// 强制使⽤有效的 JSDoc 注释 \"valid-jsdoc\": 1,

// 强制 typeof 表达式与有效的字符串进⾏⽐较 // typeof foo === \"undefimed\" 错误 \"valid-typeof\": 2,

////////////// // 最佳实践 // //////////////

// 定义对象的set存取器属性时,强制定义get \"accessor-pairs\": 2,

// 强制数组⽅法的回调函数中有 return 语句 \"array-callback-return\": 0,

// 强制把变量的使⽤在其定义的作⽤域范围内 \"block-scoped-var\": 0,

// 圈复杂度,也就是类似if else能连续接多少个 \"complexity\": [2, 9],

// 要求 return 语句要么总是指定返回的值,要么不指定 \"consistent-return\": 0,

// 强制所有控制语句使⽤⼀致的括号风格 \"curly\": [2, \"all\"],

// switch 语句强制 default 分⽀,也可添加 // no default 注释取消此次警告 \"default-case\": 2,

// 强制object.key 中 . 的位置,参数: // property,'.'号应与属性在同⼀⾏ // object, '.' 号应与对象名在同⼀⾏ \"dot-location\": [2, \"property\"], // 强制使⽤.号取属性

// 参数: allowKeywords:true 使⽤保留字做属性名时,只能使⽤.⽅式取属性

// false 使⽤保留字做属性名时, 只能使⽤[]⽅式取属性 e.g [2, {\"allowKeywords\": false}]

// allowPattern: 当属性名匹配提供的正则表达式时,允许使⽤[]⽅式取值,否则只能⽤.号取值 e.g [2, {\"allowPattern\": \"^[a-z]+(_[a-z]+)+$\ \"dot-notation\": [2, {

\"allowKeywords\": false }],

// 使⽤ === 替代 == allow-null允许null和undefined== \"eqeqeq\": [2, \"allow-null\"],

// 要求 for-in 循环中有⼀个 if 语句 \"guard-for-in\": 2,

// 禁⽤ alert、confirm 和 prompt \"no-alert\": 0,

// 禁⽤ arguments.caller 或 arguments.callee \"no-caller\": 2,

// 不允许在 case ⼦句中使⽤词法声明 \"no-case-declarations\": 2,

// 禁⽌除法操作符显式的出现在正则表达式开始的位置 \"no-div-regex\": 2,

// 禁⽌ if 语句中有 return 之后有 else \"no-else-return\": 0,

// 禁⽌出现空函数.如果⼀个函数包含了⼀条注释,它将不会被认为有问题。 \"no-empty-function\": 2,

// 禁⽌使⽤空解构模式no-empty-pattern \"no-empty-pattern\": 2,

// 禁⽌在没有类型检查操作符的情况下与 null 进⾏⽐较 \"no-eq-null\": 1, // 禁⽤ eval()

\"no-eval\": 2,

// 禁⽌扩展原⽣类型 \"no-extend-native\": 2,

// 禁⽌不必要的 .bind() 调⽤ \"no-extra-bind\": 2, // 禁⽤不必要的标签 \"no-extra-label:\": 0, // 禁⽌ case 语句落空 \"no-fallthrough\": 2,

// 禁⽌数字字⾯量中使⽤前导和末尾⼩数点 \"no-floating-decimal\": 2,

// 禁⽌使⽤短符号进⾏类型转换(!!fOO) \"no-implicit-coercion\": 0,

// 禁⽌在全局范围内使⽤ var 和命名的 function 声明 \"no-implicit-globals\": 1,

// 禁⽌使⽤类似 eval() 的⽅法 \"no-implied-eval\": 2,

// 禁⽌ this 关键字出现在类和类对象之外 \"no-invalid-this\": 0,

// 禁⽤ __iterator__ 属性 \"no-iterator\": 2, // 禁⽤标签语句 \"no-labels\": 2,

// 禁⽤不必要的嵌套块 \"no-lone-blocks\": 2,

// 禁⽌在循环中出现 function 声明和表达式 \"no-loop-func\": 1,

// 禁⽤魔术数字(3.14什么的⽤常量代替) \"no-magic-numbers\": [1, { \"ignore\": [0, -1, 1] }],

// 禁⽌使⽤多个空格 \"no-multi-spaces\": 2,

// 禁⽌使⽤多⾏字符串,在 JavaScript 中,可以在新⾏之前使⽤斜线创建多⾏字符串 \"no-multi-str\": 2,

// 禁⽌对原⽣对象赋值 \"no-native-reassign\": 2,

// 禁⽌在⾮赋值或条件语句中使⽤ new 操作符 \"no-new\": 2,

// 禁⽌对 Function 对象使⽤ new 操作符 \"no-new-func\": 0,

// 禁⽌对 String,Number 和 Boolean 使⽤ new 操作符 \"no-new-wrappers\": 2, // 禁⽤⼋进制字⾯量 \"no-octal\": 2,

// 禁⽌在字符串中使⽤⼋进制转义序列 \"no-octal-escape\": 2,

// 不允许对 function 的参数进⾏重新赋值 \"no-param-reassign\": 0, // 禁⽤ __proto__ 属性 \"no-proto\": 2,

// 禁⽌使⽤ var 多次声明同⼀变量 \"no-redeclare\": 2,

// 禁⽤指定的通过 require 加载的模块 \"no-return-assign\": 0, // 禁⽌使⽤ javascript: url \"no-script-url\": 0, // 禁⽌⾃我赋值 \"no-self-assign\": 2, // 禁⽌⾃⾝⽐较

\"no-self-compare\": 2, // 禁⽤逗号操作符 \"no-sequences\": 2,

// 禁⽌抛出⾮异常字⾯量 \"no-throw-literal\": 2,

// 禁⽤⼀成不变的循环条件

\"no-unmodified-loop-condition\": 2, // 禁⽌出现未使⽤过的表达式 \"no-unused-expressions\": 0, // 禁⽤未使⽤过的标签 \"no-unused-labels\": 2,

// 禁⽌不必要的 .call() 和 .apply() \"no-useless-call\": 2,

// 禁⽌不必要的字符串字⾯量或模板字⾯量的连接 \"no-useless-concat\": 2, // 禁⽤不必要的转义字符 \"no-useless-escape\": 0, // 禁⽤ void 操作符 \"no-void\": 0,

// 禁⽌在注释中使⽤特定的警告术语 \"no-warning-comments\": 0, // 禁⽤ with 语句 \"no-with\": 2,

// 强制在parseInt()使⽤基数参数

\"radix\": 2,

// 要求所有的 var 声明出现在它们所在的作⽤域顶部 \"vars-on-top\": 0,

// 要求 IIFE 使⽤括号括起来 \"wrap-iife\": [2, \"any\"], // 要求或禁⽌ “Yoda” 条件 \"yoda\": [2, \"never\"],

// 要求或禁⽌使⽤严格模式指令 \"strict\": 0,

////////////// // 变量声明 // //////////////

// 要求或禁⽌ var 声明中的初始化(初值) \"init-declarations\": 0,

// 不允许 catch ⼦句的参数与外层作⽤域中的变量同名 \"no-catch-shadow\": 0, // 禁⽌删除变量 \"no-delete-var\": 2,

// 不允许标签与变量同名 \"no-label-var\": 2,

// 禁⽤特定的全局变量 \"no-restricted-globals\": 0,

// 禁⽌ var 声明 与外层作⽤域的变量同名 \"no-shadow\": 0,

// 禁⽌覆盖受的标识符

\"no-shadow-restricted-names\": 2,

// 禁⽤未声明的变量,除⾮它们在 /*global */ 注释中被提到 \"no-undef\": 2,

// 禁⽌将变量初始化为 undefined \"no-undef-init\": 2,

// 禁⽌将 undefined 作为标识符 \"no-undefined\": 0,

// 禁⽌出现未使⽤过的变量 \"no-unused-vars\": [2, { \"vars\": \"all\", \"args\": \"none\" }],

// 不允许在变量定义之前使⽤它们 \"no-use-before-define\": 0, //////////////////////////

// Node.js and CommonJS // //////////////////////////

// require return statements after callbacks \"callback-return\": 0,

// 要求 require() 出现在顶层模块作⽤域中 \"global-require\": 1,

// 要求回调函数中有容错处理

\"handle-callback-err\": [2, \"^(err|error)$\"], // 禁⽌混合常规 var 声明和 require 调⽤ \"no-mixed-requires\": 0,

// 禁⽌调⽤ require 时使⽤ new 操作符 \"no-new-require\": 2,

// 禁⽌对 __dirname 和 __filename进⾏字符串连接 \"no-path-concat\": 0, // 禁⽤ process.env \"no-process-env\": 0, // 禁⽤ process.exit() \"no-process-exit\": 0, // 禁⽤同步⽅法 \"no-sync\": 0, ////////////// // 风格指南 // //////////////

// 指定数组的元素之间要以空格隔开(, 后⾯), never参数:[ 之前和 ] 之后不能带空格,always参数:[ 之前和 ] 之后必须带空格 \"array-bracket-spacing\": [2, \"never\"],

// 禁⽌或强制在单⾏代码块中使⽤空格(禁⽤) \"block-spacing\": [1, \"never\"],

//强制使⽤⼀致的缩进 第⼆个参数为 \"tab\" 时,会使⽤tab, // 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\"],

// ⽤于指统⼀在回调函数中指向this的变量名,箭头函数中的this已经可以指向外层调⽤者,应该没卵⽤了 // e.g [0,\"that\"] 指定只能 var that = this. that不能指向其他任何值,this也不能赋值给that以外的其他值 \"consistent-this\": [1, \"that\"],

// 强制使⽤命名的 function 表达式 \"func-names\": 0, // ⽂件末尾强制换⾏ \"eol-last\": 2, \"indent\": [2, 4, { \"SwitchCase\": 1 }],

// 强制在对象字⾯量的属性中键和值之间使⽤⼀致的间距 \"key-spacing\": [2, { \"beforeColon\": false, \"afterColon\": true }],

// 强制使⽤⼀致的换⾏风格 \"linebreak-style\": [1, \"unix\"],

// 要求在注释周围有空⾏ ( 要求在块级注释之前有⼀空⾏) \"lines-around-comment\": [1, { \"beforeBlockComment\": true }],

// 强制⼀致地使⽤函数声明或函数表达式,⽅法定义风格,参数:

// declaration: 强制使⽤⽅法声明的⽅式,function f(){} e.g [2, \"declaration\"]

// expression:强制使⽤⽅法表达式的⽅式,var f = function() {} e.g [2, \"expression\"]

// allowArrowFunctions: declaration风格中允许箭头函数。 e.g [2, \"declaration\ \"func-style\": 0,

// 强制回调函数最⼤嵌套深度 5层 \"max-nested-callbacks\": [1, 5], // 禁⽌使⽤指定的标识符 \"id-blacklist\": 0,

// 强制标识符的最新和最⼤长度 \"id-length\": 0,

// 要求标识符匹配⼀个指定的正则表达式 \"id-match\": 0,

// 强制在 JSX 属性中⼀致地使⽤双引号或单引号 \"jsx-quotes\": 0,

// 强制在关键字前后使⽤⼀致的空格 (前后腰需要) \"keyword-spacing\": 2, // 强制⼀⾏的最⼤长度 \"max-len\": [1, 200], // 强制最⼤⾏数 \"max-lines\": 0,

// 强制 function 定义中最多允许的参数数量 \"max-params\": [1, 7],

// 强制 function 块最多允许的的语句数量 \"max-statements\": [1, 200],

// 强制每⼀⾏中所允许的最⼤语句数量 \"max-statements-per-line\": 0,

// 要求构造函数⾸字母⼤写 (要求调⽤ new 操作符时有⾸字母⼤⼩的函数,允许调⽤⾸字母⼤写的函数时没有 new 操作符。) \"new-cap\": [2, {

\"newIsCap\": true, \"capIsNew\": false }],

// 要求调⽤⽆参构造函数时有圆括号 \"new-parens\": 2,

// 要求或禁⽌ var 声明语句后有⼀⾏空⾏ \"newline-after-var\": 0,

// 禁⽌使⽤ Array 构造函数 \"no-array-constructor\": 2, // 禁⽤按位运算符 \"no-bitwise\": 0,

// 要求 return 语句之前有⼀空⾏ \"newline-before-return\": 0,

// 要求⽅法链中每个调⽤都有⼀个换⾏符 \"newline-per-chained-call\": 1, // 禁⽤ continue 语句 \"no-continue\": 0,

// 禁⽌在代码⾏后使⽤内联注释 \"no-inline-comments\": 0,

// 禁⽌ if 作为唯⼀的语句出现在 else 语句中 \"no-lonely-if\": 0,

// 禁⽌混合使⽤不同的操作符 \"no-mixed-operators\": 0,

// 不允许空格和 tab 混合缩进 \"no-mixed-spaces-and-tabs\": 2, // 不允许多个空⾏

\"no-multiple-empty-lines\": [2, { \"max\": 2 }],

// 不允许否定的表达式 \"no-negated-condition\": 0,

// 不允许使⽤嵌套的三元表达式 \"no-nested-ternary\": 0,

// 禁⽌使⽤ Object 的构造函数 \"no-new-object\": 2,

// 禁⽌使⽤⼀元操作符 ++ 和 -- \"no-plusplus\": 0,

// 禁⽌使⽤特定的语法 \"no-restricted-syntax\": 0,

// 禁⽌ function 标识符和括号之间出现空格 \"no-spaced-func\": 2, // 不允许使⽤三元操作符 \"no-ternary\": 0, // 禁⽤⾏尾空格

\"no-trailing-spaces\": 2,

// 禁⽌标识符中有悬空下划线_bar \"no-underscore-dangle\": 0,

// 禁⽌可以在有更简单的可替代的表达式时使⽤三元操作符 \"no-unneeded-ternary\": 2, // 禁⽌属性前有空⽩

\"no-whitespace-before-property\": 0, // 强制花括号内换⾏符的⼀致性 \"object-curly-newline\": 0,

// 强制在花括号中使⽤⼀致的空格 \"object-curly-spacing\": 0,

// 强制将对象的属性放在不同的⾏上 \"object-property-newline\": 0,

// 强制函数中的变量要么⼀起声明要么分开声明 \"one-var\": [2, {

\"initialized\": \"never\" }],

// 要求或禁⽌在 var 声明周围换⾏ \"one-var-declaration-per-line\": 0,

// 要求或禁⽌在可能的情况下要求使⽤简化的赋值操作符 \"operator-assignment\": 0,

// 强制操作符使⽤⼀致的换⾏符 \"operator-linebreak\": [2, \"after\", { \"overrides\": { \"?\": \"before\", \":\": \"before\" } }],

// 要求或禁⽌块内填充 \"padded-blocks\": 0,

// 要求对象字⾯量属性名称⽤引号括起来 \"quote-props\": 0,

// 强制使⽤⼀致的反勾号、双引号或单引号 \"quotes\": [2, \"double\", \"avoid-escape\"], // 要求使⽤ JSDoc 注释 \"require-jsdoc\": 1,

// 要求或禁⽌使⽤分号⽽不是 ASI(这个才是控制⾏尾部分号的,) \"semi\": [2, \"always\"],

// 强制分号之前和之后使⽤⼀致的空格 \"semi-spacing\": 0,

// 要求同⼀个声明块中的变量按顺序排列 \"sort-vars\": 0,

// 强制在块之前使⽤⼀致的空格

\"space-before-blocks\": [2, \"always\"],

// 强制在 function的左括号之前使⽤⼀致的空格 \"space-before-function-paren\": [0, \"always\"], // 强制在圆括号内使⽤⼀致的空格 \"space-in-parens\": [2, \"never\"], // 要求操作符周围有空格 \"space-infix-ops\": 2,

// 强制在⼀元操作符前后使⽤⼀致的空格 \"space-unary-ops\": [2, { \"words\": true, \"nonwords\": false }],

// 强制在注释中 // 或 /* 使⽤⼀致的空格 \"spaced-comment\": [2, \"always\", {

\"markers\": [\"global\", \"globals\", \"eslint\", \"eslint-disable\", \"*package\", \"!\"] }],

// 要求或禁⽌ Unicode BOM \"unicode-bom\": 0,

// 要求正则表达式被括号括起来 \"wrap-regex\": 0, ////////////// // ES6.相关 //

//////////////

// 要求箭头函数体使⽤⼤括号 \"arrow-body-style\": 2,

// 要求箭头函数的参数使⽤圆括号 \"arrow-parens\": 2, \"arrow-spacing\": [2, { \"before\": true, \"after\": true }],

// 强制在⼦类构造函数中⽤super()调⽤⽗类构造函数,TypeScrip的编译器也会提⽰ \"constructor-super\": 0,

// 强制 generator 函数中 * 号周围使⽤⼀致的空格 \"generator-star-spacing\": [2, { \"before\": true, \"after\": true }],

// 禁⽌修改类声明的变量 \"no-class-assign\": 2,

// 不允许箭头功能,在那⾥他们可以混淆的⽐较 \"no-confusing-arrow\": 0,

// 禁⽌修改 const 声明的变量 \"no-const-assign\": 2,

// 禁⽌类成员中出现重复的名称 \"no-dupe-class-members\": 2, // 不允许复制模块的进⼝ \"no-duplicate-imports\": 0, // 禁⽌ Symbol 的构造函数 \"no-new-symbol\": 2,

// 允许指定模块加载时的进⼝ \"no-restricted-imports\": 0,

// 禁⽌在构造函数中,在调⽤ super() 之前使⽤ this 或 super \"no-this-before-super\": 2,

// 禁⽌不必要的计算性能键对象的⽂字 \"no-useless-computed-key\": 0, // 要求使⽤ let 或 const ⽽不是 var \"no-var\": 0,

// 要求或禁⽌对象字⾯量中⽅法和属性使⽤简写语法 \"object-shorthand\": 0,

// 要求使⽤箭头函数作为回调 \"prefer-arrow-callback\": 0,

// 要求使⽤ const 声明那些声明后不再被修改的变量 \"prefer-const\": 0,

// 要求在合适的地⽅使⽤ Reflect ⽅法 \"prefer-reflect\": 0,

// 要求使⽤扩展运算符⽽⾮ .apply() \"prefer-spread\": 0,

// 要求使⽤模板字⾯量⽽⾮字符串连接 \"prefer-template\": 0,

// Suggest using the rest parameters instead of arguments \"prefer-rest-params\": 0,

// 要求generator 函数内有 yield \"require-yield\": 0,

// enforce spacing between rest and spread operators and their expressions \"rest-spread-spacing\": 0, // 强制模块内的 import 排序 \"sort-imports\": 0,

// 要求或禁⽌模板字符串中的嵌⼊表达式周围空格的使⽤ \"template-curly-spacing\": 1,

// 强制在 yield* 表达式中 * 周围使⽤空格 \"yield-star-spacing\": 2 }}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务