内置规则

  • eslint 内置规则介绍
  • eslint 推荐配置

eslint 内置规则介绍

modules.exports = {// 所有规则页面(https://eslint.org/docs/rules)标记为 ✔ 的规则将会默认开启extends: ['eslint:recommended'],parserOptions: {ecmaVersion: 'latest',sourceType: 'module',},/* Rules *代表recommended也就是'error', ()包裹代表可--fix自动修复, options代表有其它选项建议去官网查看用法, 还有这个规则适合什么时候使用的介绍 */rules: {/* Possible Problems: These rules relate to possible logic errors in code */// options Array回调函数需要return  https://eslint.org/docs/rules/array-callback-return'array-callback-return': ['off',{ allowImplicit: false, checkForEach: false },],// * 派生类的Constructor中调用super()'constructor-super': 'error',// * for循环方向错误导致终止条件无法到达'for-direction': 'error',// *options getter函数需要return  https://eslint.org/docs/rules/getter-return'getter-return': ['error', { allowImplicit: false }],// * 禁止使用async函数作为new Promise()的参数'no-async-promise-executor': 'error',// 禁止for循环中使用await'no-await-in-loop': 'off',// * 禁止修改class声明的变量'no-class-assign': 'error',// * 禁止与-0比较'no-compare-neg-zero': 'error',// *options 禁止测试条件中出现赋值操作符  https://eslint.org/docs/rules/no-cond-assign'no-cond-assign': ['error', 'except-parens'],// * 禁止修改const声明的变量'no-const-assign': 'error',// *options 禁止常量表达式作为测试条件  https://eslint.org/docs/rules/no-constant-condition'no-constant-condition': ['error', { checkLoops: true }],// 禁止在constructor中return一个值'no-constructor-return': 'off',// * 禁止在正则表达式中使用控制字符(ASCII:0~31)'no-control-regex': 'error',// * 禁止使用debugger'no-debugger': 'error',// * 禁止函数定义中出现重复的参数'no-dupe-args': 'error',// * 禁止class中定义重复的成员'no-dupe-class-members': 'error',// * 禁止else if中使用重复的条件'no-dupe-else-if': 'error',// * 禁止对象字面量中使用重复的key'no-dupe-keys': 'error',// * 禁止switch出现重复的case'no-duplicate-case': 'error',// options 禁止重复import模块  https://eslint.org/docs/rules/no-duplicate-imports'no-duplicate-imports': ['off', { includeExports: false }],// * 禁止在正则表达式中使用空字符集'no-empty-character-class': 'error',// * 禁止空的结构模式'no-empty-pattern': 'error',// * 禁止catch语句中修改exception参数'no-ex-assign': 'error',// *options 禁止case语句落空  https://eslint.org/docs/rules/no-fallthrough'no-fallthrough': ['error', { commentPattern: 'falls?\\s?through' }],// * 禁止对函数声明重新赋值'no-func-assign': 'error',// * 禁止直接赋值import导入的变量'no-import-assign': 'error',// *options 禁止在嵌套的块作用域中使用var或函数声明 https://eslint.org/docs/rules/no-inner-declarations'no-inner-declarations': ['error', 'functions'],// *options 禁止在 RegExp 构造函数中使用无效的正则表达式字符串  https://eslint.org/docs/rules/no-invalid-regexp'no-invalid-regexp': ['error', { allowConstructorFlags: [] }],// *options 禁止不规则的空白(可以配置字符串,模板字符串,注释,正则表达式字面量)  https://eslint.org/docs/rules/no-irregular-whitespace'no-irregular-whitespace': ['error', { skipStrings: true }],// * 禁止使用超出浮点数精度的数字字面量'no-loss-of-precision': 'error',// * 禁止正则表达式中使用多代码点组成的一个字符'no-misleading-character-class': 'error',// * 禁止Symbol构造函数(本来也不支持)'no-new-symbol': 'error',// * 禁止某些全局对象被当作函数或构造函数调用(Math,Date,Reflect,Atomics)'no-obj-calls': 'error',// 禁止从new Promise()的函数参数中return一个值'no-promise-executor-return': 'off',// * 禁止直接在对象实例上调用某些 Object.prototype 方法(call,apply可以)'no-prototype-builtins': 'error',// *options 禁止自身赋值  https://eslint.org/docs/rules/no-self-assign'no-self-assign': ['error', { props: true }],// 禁止自身比较'no-self-compare': 'off',// * 禁止setter函数return一个值'no-setter-return': 'error',// * 禁止稀疏数组'no-sparse-arrays': 'error',// 禁止在常规字符串中出现模板字面量占位符语法'no-template-curly-in-string': 'off',// * 禁止在派生类构造函数中在super()调用之前使用this/super'no-this-before-super': 'error',// *options 禁止使用未声明变量  https://eslint.org/docs/rules/no-undef'no-undef': ['error', { typeof: false }],// * 禁止令人困惑的多行表达式'no-unexpected-multiline': 'error',// 禁止一成不变的循环条件'no-unmodified-loop-condition': 'off',// * 禁止return, throw, break, continue之后出现的无法执行的语句及子类构造函数没有调用super()'no-unreachable': 'error',// options 禁止最多只有一次的循环  https://eslint.org/docs/rules/no-unreachable-loop'no-unreachable-loop': ['off', { ignore: [] }],// * 禁止finally块中直接使用return, throw, break, continue'no-unsafe-finally': 'error',// *options 禁止对关系运算符的左操作数使用否定操作符  https://eslint.org/docs/rules/no-unsafe-negation'no-unsafe-negation': ['error', { enforceForOrderingRelations: false }],// *options 禁止在不允许使用undefined的上下文中使用可选链(?.)  https://eslint.org/docs/rules/no-unsafe-options-chaining'no-unsafe-optional-chaining': ['error',{ disallowArithmeticOperators: false },],// 禁止未使用的私有类成员对象'no-unused-private-class-members': 'off',// *options 禁止出现未使用的变量  https://eslint.org/docs/rules/no-unused-vars'no-unused-vars': ['error',{vars: 'all',args: 'after-used',caughtErrors: 'none',ignoreRestSiblings: false,},],// options 禁止未声明就使用  https://eslint.org/docs/rules/no-use-before-define'no-use-before-define': ['off',{ classes: true, functions: true, variables: true },],// * 禁止在正则表达式中使用无用的反向引用'no-useless-backreference': 'error',// options 禁止由于 await 或 yield的使用而可能导致出现竞态条件的赋值  https://eslint.org/docs/rules/require-atomic-updates'require-atomic-updates': ['off', { allowProperties: false }],// *options 使用isNaN()检查NaN  https://eslint.org/docs/rules/use-isnan'use-isnan': ['error',{ enforceForSwitchCase: true, enforceForIndexOf: false },],// *options 强制typeof表达式与有效的字符串字面量比较  https://eslint.org/docs/rules/valid-typeof'valid-typeof': ['error', { requireStringLiterals: true }],/* Suggestions: These rules suggest alternate ways of doing things */// options 强制getter和setter成对出现在Object和Class中(默认可以只有getter)  https://eslint.org/docs/rules/accessor-pairs'accessor-pairs': ['off',{setWithoutGet: true,getWithoutSet: false,enforceForClassMembers: true,},],// (options) 需要在箭头函数体中使用大括号(只有as-needed才可以使用第三个参数)'arrow-body-style': ['off','as-needed',{ requireReturnForObjectLiteral: false },],// 模拟var像let一样拥有块作用域'block-scoped-var': 'off',// options 使用驼峰命名  https://eslint.org/docs/rules/camelcasecamelcase: ['off',{properties: 'always',ignoreDestructuring: false,ignoreImports: false,ignoreGlobals: false,allow: [],},],// (options) 强制或禁止对注释的第一个字母大写(可以使用block,line单独配置单行多行注释)  https://eslint.org/docs/rules/capitalized-comments'capitalized-comments': ['off','always',{ignorePattern: 'jscs|jshint|eslint|istanbul|global|globals|exported',ignoreInlineComments: false,ignoreConsecutiveComments: false,},],// options 强制类中的方法使用this, 否则需要将不使用this的实例方法改为静态方法  https://eslint.org/docs/rules/class-methods-use-this'class-methods-use-this': ['off',{ enforceForClassFields: true, exceptMethods: [] },],// options 限制程序中允许的最大环路复杂度(为了降低程序复杂度)  https://eslint.org/docs/rules/complexitycomplexity: ['off', { max: 20 }],// options 要求return语句要么总是返回值要么不返回  https://eslint.org/docs/rules/consistent-return'consistent-return': ['off', { treatUndefinedAsUnspecified: false }],// options 要求使用统一的this别名  https://eslint.org/docs/rules/consistent-this'consistent-this': ['off', 'that'],// (options) 单行语句是否使用花括号  https://eslint.org/docs/rules/curlycurly: ['off', 'multi'],// options switch语句是否需要default  https://eslint.org/docs/rules/default-case'default-case': ['off', { commentPattern: '^no\\sdefault' }],// 强制default子句在switch语句的最后'default-case-last': 'off',// 强制默认值参数在函数参数列表的最后'default-param-last': 'off',// (options) 尽可能使用点符号  https://eslint.org/docs/rules/dot-notation'dot-notation': ['off', { allowKeywords: true, allowPattern: '' }],// (options) 尽可能使用===和!==(always可以配置第2个参数, smart不需要)  https://eslint.org/docs/rules/eqeqeqeqeqeq: ['off', 'always', { null: 'always' }],// options 需要函数名与赋值的变量名或属性名一致  https://eslint.org/docs/rules/func-name-matching'func-name-matching': ['off','always',{considerPropertyDescriptor: false,includeCommonJSModuleExports: false,},],// options 要求或禁止带名称的函数表达式  https://eslint.org/docs/rules/func-names'func-names': ['off', 'always', { generators: 'always' }],// options 强制一致的使用函数声明或函数表达式形式(当第2个参数为declaration,第3个参数才会生效)  https://eslint.org/docs/rules/func-style'func-style': ['off', 'expression', { allowArrowFunctions: false }],// options 假如对象字面量或类中存在getter,setter函数, 强制getter和setter相邻  https://eslint.org/docs/rules/grouped-accessor-pairs'grouped-accessor-pairs': ['off', 'anyOrder'],// 需要过滤for-in循环可能继承自原型链的属性(Object.prototype.hasOwnProperty)'guard-for-in': 'off',// options 禁止使用指定的标识符作为变量名, 函数名, 对象属性, 类成员对象(第1个参数之后全部是禁用的标识符)  https://eslint.org/docs/rules/id-denylist'id-denylist': ['off'],// options 强制标识符的最小和最大长度  https://eslint.org/docs/rules/id-length'id-length': ['off',{min: 2,max: Infinity,properties: 'always',exceptions: [],exceptionPatterns: [],},],// options 需要标识符满足特定的正则表达式(第2个参数是正则表达式字符串)  https://eslint.org/docs/rules/id-match'id-match': ['off','',{properties: false,classFields: false,onlyDeclarations: false,ignoreDestructuring: false,},],// options 需要或禁止在变量声明时初始化(第2个参数为never时, 第3个参数生效)  https://eslint.org/docs/rules/init-declarations'init-declarations': ['off', 'always', { ignoreForLoopInit: true }],// options 限制每个文件class的最大数量  https://eslint.org/docs/rules/max-classes-per-file'max-classes-per-file': ['off', { max: 1, ignoreExpressions: false }],// options 限制循环嵌套的最大深度  https://eslint.org/docs/rules/max-depth'max-depth': ['off', { max: 4 }],// options 限制每个文件的最大行数  https://eslint.org/docs/rules/max-lines'max-lines': ['off',{ max: 300, skipBlankLines: false, skipComments: false },],// options 限制每个函数的最大行数  https://eslint.org/docs/rules/max-lines-per-function'max-lines-per-function': ['off',{ max: 50, skipBlankLines: false, skipComments: false, IIFEs: false },],// options 限制可以嵌套的最大深度的回调函数  https://eslint.org/docs/rules/max-nested-callbacks'max-nested-callbacks': ['off', { max: 10 }],// options 限制函数定义的参数的最大数量  https://eslint.org/docs/rules/max-params'max-params': ['off', { max: 3 }],// options 限制函数体中语句的最大数量  https://eslint.org/docs/rules/max-statements'max-statements': ['off', { max: 10 }, { ignoreTopLevelFunctions: false }],// (options) 强制多行注释采用特定的格式  https://eslint.org/docs/rules/multiline-comment-style'multiline-comment-style': ['off', 'starred-block'],// options 要求构造函数名的首字母大写  https://eslint.org/docs/rules/new-cap'new-cap': ['off',{newIsCap: true,capIsNew: true,properties: true,newIsCapExceptions: [],newIsCapExceptionPattern: '',capIsNewExceptions: [],capIsNewExceptionPattern: '',},],// 禁止alert弹出框类型的函数'no-alert': 'off',// 禁止使用Array构造函数'no-array-constructor': 'off',// options 禁止按位运算符  https://eslint.org/docs/rules/no-bitwise'no-bitwise': ['off', { allow: [], int32Hint: false }],// 禁止使用caller或callee(arguments.caller/arguments.callee)'no-caller': 'off',// * 禁止在case/default子句中使用词法声明(let,const,function and class)'no-case-declarations': 'error',// (options) 禁止在可能与比较运算符混淆的地方使用箭头函数  https://eslint.org/docs/rules/no-confusing-arrow'no-confusing-arrow': ['off', { allowParens: true }],// options 禁止使用console对象  https://eslint.org/docs/rules/no-console'no-console': ['off', { allow: [] }],// 禁用continue语句'no-continue': 'off',// * 禁止使用delete删除变量'no-delete-var': 'error',// () 禁止除法操作符显式的出现在正则表达式开始的位置'no-div-regex': 'off',// (options) 禁止if和else块中都return  https://eslint.org/docs/rules/no-else-return'no-else-return': ['off', { allowElseIf: true }],// *options 禁止出现空语句块  https://eslint.org/docs/rules/no-empty'no-empty': ['error', { allowEmptyCatch: false }],// options 禁止出现空函数  https://eslint.org/docs/rules/no-empty-function'no-empty-function': ['off', { allow: [] }],// 禁止在没有类型检查操作符(==或!=)的情况下与 null 进行比较'no-eq-null': 'off',// options 禁止eval()  https://eslint.org/docs/rules/no-eval'no-eval': ['off', { allowIndirect: false }],// options 禁止直接扩展内置的原生的对象  https://eslint.org/docs/rules/no-extend-native'no-extend-native': ['off', { exceptions: [] }],// () 禁止非必要的函数绑定bind()'no-extra-bind': 'off',// (*options) 禁止非必要的布尔转换  https://eslint.org/docs/rules/no-extra-boolean-cast'no-extra-boolean-cast': ['error', { enforceForLogicalOperands: false }],// () 禁止非必要的标签'no-extra-label': 'off',// (*) 禁止非必要的分号'no-extra-semi': 'error',// () 禁止小数点前后数字的缺失'no-floating-decimal': 'off',// *options 禁止修改内置原生对象或只读的全局变量  https://eslint.org/docs/rules/no-global-assign'no-global-assign': ['error', { exceptions: [] }],// (options) 禁止使用类型转换较短的符号模式,使用基本类型包装器  https://eslint.org/docs/rules/no-implicit-coercion'no-implicit-coercion': ['off',{boolean: true,number: true,string: true,disallowTemplateShorthand: false,allow: [],},],// options 禁止在全局作用域中声明  https://eslint.org/docs/rules/no-implicit-globals'no-implicit-globals': ['off', { lexicalBindings: false }],// 禁止使用隐式eval(), setTimeout,setInterval第一个参数可以是字符串, 会被当做函数体执行'no-implied-eval': 'off',// options 禁止代码与注释在同一行  https://eslint.org/docs/rules/no-inline-comments'no-inline-comments': ['off', { ignorePattern: '' }],// options 限制类或类对象之外的this的使用  https://eslint.org/docs/rules/no-invalid-this'no-invalid-this': ['off', { capIsConstructor: true }],// 禁止使用__iterator__属性'no-iterator': 'off',// 禁止标签和变量拥有同样的名称'no-label-var': 'off',// options 禁止使用带标签的语句  https://eslint.org/docs/rules/no-labels'no-labels': ['off', { allowLoop: false, allowSwitch: false }],// 禁止不必要的嵌套块'no-lone-blocks': 'off',// () 禁止if子句作为else子句的唯一语句(应该使用else if)'no-lonely-if': 'off',// 禁止在循环语句中出现包含不安全引用的函数声明'no-loop-func': 'off',// options 禁止使用含义不明的数字(比如60可以代表分也可以代表秒)  https://eslint.org/docs/rules/no-magic-numbers'no-magic-numbers': ['off',{ignore: [],ignoreArrayIndexes: false,ignoreDefaultValues: false,enforceConst: false,detectObjects: false,},],// options 禁止混用不同的操作符(尽量用括号包裹一下)  https://eslint.org/docs/rules/no-mixed-operators'no-mixed-operators': ['off', { groups: [[]], allowSamePrecedence: true }],// options 禁止链式赋值表达式  https://eslint.org/docs/rules/no-multi-assign'no-multi-assign': ['off', { ignoreNonDeclaration: false }],// 禁止使用\把单行字符串写成多行'no-multi-str': 'off',// 禁止在后面有else分支的if条件或三元表达式中使用否定条件'no-negated-condition': 'off',// 禁用new调用构造函数但不赋值给变量的操作'no-new': 'off',// 禁止直接使用Function构造函数'no-new-func': 'off',// 禁止直接使用Object构造函数'no-new-object': 'off',// 禁止new和基础包装类一起使用'no-new-wrappers': 'off',// * 禁止字符串字面量中使用\8,\9转义序列'no-nonoctal-decimal-escape': 'error',// * 禁止使用八进制字面量'no-octal': 'error',// 禁止字符串字面量中使用八进制转义序列'no-octal-escape': 'off',// options 禁止修改函数参数(当props为true时, 两个数组中值代表对象的属性可以修改)  https://eslint.org/docs/rules/no-param-reassign'no-param-reassign': ['off',{props: false,ignorePropertyModificationsFor: [],ignorePropertyModificationsForRegex: [],},],// options 禁止使用一元操作符++和--  https://eslint.org/docs/rules/no-plusplus'no-plusplus': ['off', { allowForLoopAfterthoughts: false }],// 禁止使用__proto__属性(Object,getPrototypeOf, Object.setPrototypeOf)'no-proto': 'off',// options 禁止在同一上下文中变量声明多次'no-redeclare': ['off', { builtinGlobals: true }],// (*) 禁止正则表达式字面量中出现多个连续空格'no-regex-spaces': 'error',// options 禁止使用export导出特定的名称(对export default无效)  https://eslint.org/docs/rules/no-restricted-exports'no-restricted-exports': ['off', { restrictedNamedExports: [] }],// options 禁用特定的全局变量  https://eslint.org/docs/rules/no-restricted-globals'no-restricted-globals': ['off', ''],// options 禁止使用import或require导入特定的名称  https://eslint.org/docs/rules/no-restricted-imports'no-restricted-imports': ['off', { paths: [], patterns: [] }],// options 禁止使用某个对象的某个属性 https://eslint.org/docs/rules/no-restricted-properties'no-restricted-properties': ['off',{ object: '', property: '', message: '' },],// options 禁止使用特定的语法  https://eslint.org/docs/rules/no-restricted-syntax'no-restricted-syntax': ['off', { selector: '', message: '' }],// options 禁止在return语句中赋值  https://eslint.org/docs/rules/no-return-assign'no-return-assign': ['off', 'except-parens'],// 禁用不必要的return await'no-return-await': 'off',// 禁止javascript: URL'no-script-url': 'off',// options 禁止使用逗号操作符  https://eslint.org/docs/rules/no-sequences'no-sequences': ['off', { allowInParentheses: true }],// options 禁止当前作用域声明的变量与父级作用域声明的变量名一致  https://eslint.org/docs/rules/no-shadow'no-shadow': ['off',{ builtinGlobals: false, hoist: 'functions', allow: [] },],// * 禁止将标识符定义为受限的名称'no-shadow-restricted-names': 'error',// 禁止使用三元表达式'no-ternary': 'off',// 禁止throw基础类型字面量'no-throw-literal': 'off',// () 禁止使用undefined作为初始化值'no-undef-init': 'off',// 禁止使用undefined变量'no-undefined': 'off',// options 禁止在标识符前后使用_  https://eslint.org/docs/rules/no-underscore-dangle'no-underscore-dangle': ['off',{allow: [],allowAfterThis: false,allowAfterSuper: false,allowAfterThisConstructor: false,allowFunctionParams: true,enforceInMethodNames: false,},],// (options) 禁止不必要的三元表达式  https://eslint.org/docs/rules/no-unneeded-ternary'no-unneeded-ternary': ['off', { defaultAssignment: true }],// options 禁止对程序状态没有影响的无用表达式(比如 n+1 而不是 n += 1)  https://eslint.org/docs/rules/no-unused-expressions'no-unused-expressions': ['off',{allowShortCircuit: false,allowTernary: false,allowTaggedTemplates: false,enforceForJSX: false,},],// (*) 禁止出现未使用的标签'no-unused-labels': 'error',// 禁止非必要的call,apply调用'no-useless-call': 'off',// * 禁止不必要的catch子句'no-useless-catch': 'error',// (options) 禁止对象或类中使用不必要的计算属性key(动态键)  https://eslint.org/docs/rules/no-useless-computed-key'no-useless-computed-key': ['off', { enforceForClassMembers: false }],// 禁止不必要的字符串拼接'no-useless-concat': 'off',// 禁止出现不必要的构造函数(和隐藏构造函数一致就可以删除)'no-useless-constructor': 'off',// * 禁止不必要的转义字符'no-useless-escape': 'error',// (options) 禁止import, export, 和结构赋值中原名称与重命名一致  https://eslint.org/docs/rules/no-useless-rename'no-useless-rename': ['off',{ ignoreImport: false, ignoreExport: false, ignoreDestructuring: false },],// () 禁止多余的return;'no-useless-return': 'off',// () 建议使用let和const, 禁止使用var'no-var': 'off',// options 禁止使用void操作符  https://eslint.org/docs/rules/no-void'no-void': ['off', { allowAsStatement: false }],// options 禁止警告注释  https://eslint.org/docs/rules/no-warning-comments'no-warning-comments': ['off',{ terms: ['todo', 'fixme', 'xxx'], location: 'start' },],// * 禁止使用with语句'no-with': 'error',// (options) 需要对象字面量的简写语法(省略冒号:)  https://eslint.org/docs/rules/object-shorthand'object-shorthand': ['off', 'always'],// (options) 强制函数中的变量要么一起声明要么单独声明  https://eslint.org/docs/rules/one-var'one-var': ['off', 'always'],// (options) 要求或强制在变量声明周围换行(每行只有一个变量)  https://eslint.org/docs/rules/one-var-declaration-per-line'one-var-declaration-per-line': ['off', 'initializations'],// (options) 要求或禁止在可以使用赋值操作符缩写的时候使用  https://eslint.org/docs/rules/operator-assignment'operator-assignment': ['off', 'always'],// (options) 要求回调函数或函数表达式使用箭头函数  https://eslint.org/docs/rules/prefer-arrow-callback'prefer-arrow-callback': ['off',{ allowNamedFunctions: false, allowUnboundThis: true },],// (options) 如果可以, 建议优先使用const  https://eslint.org/docs/rules/prefer-const'prefer-const': ['off',{ destructuring: 'any', ignoreReadBeforeAssign: false },],// (options) 如果可以, 建议对数组或对象使用解构  https://eslint.org/docs/rules/prefer-destructuring'prefer-destructuring': ['off',{VariableDeclarator: { object: true, array: true },AssignmentExpression: { object: true, array: true },},{enforceForRenamedProperties: false,},],// () 禁用Math.pow, 要求使用 **'prefer-exponentiation-operator': 'off',// 建议在正则表达式中使用命名捕获组'prefer-named-capture-group': 'off',// () 建议直接使用二进制,八进制,十六进制数字字面量'prefer-numeric-literals': 'off',// () 建议使用对象扩展运算符而不是Object.assign'prefer-object-spread': 'off',// options 要求使用内置Error对象的实例作为Promise reject的参数  https://eslint.org/docs/rules/prefer-promise-reject-errors'prefer-promise-reject-errors': ['off', { allowEmptyReject: false }],// options 建议使用正则表达式字面量而不是正则表达式构造函数  https://eslint.org/docs/rules/prefer-regex-literals'prefer-regex-literals': ['off', { disallowRedundantWrapping: false }],// 建议使用剩余参数而不是arguments'prefer-rest-params': 'off',// 建议可变参数函数使用扩展语法而不是apply'prefer-spread': 'off',// () 建议使用模板字符串而不是字符串拼接'prefer-template': 'off',// (options) 对象字面量的属性名需要引号包裹  https://eslint.org/docs/rules/quote-props'quote-props': ['off','always',{ keywords: true, unnecessary: true, numbers: true },],// options 需要在parseInt中使用基数参数  https://eslint.org/docs/rules/radixradix: ['off', 'always'],// 禁止不带await表达式的async函数'require-await': 'off',// 强制正则表达式中使用u标志'require-unicode-regexp': 'off',// * 禁止生成器函数中没有使用yield关键字'require-yield': 'error',// (options) 检查导入声明并按照首字母及别名排序  https://eslint.org/docs/rules/sort-imports'sort-imports': ['off',{ignoreCase: false,ignoreDeclarationSort: false,ignoreMemberSort: false,memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],allowSeparatedGroups: false,},],// options 要求对象的属性按照字母顺序排序  https://eslint.org/docs/rules/sort-keys'sort-keys': ['off','asc',{ caseSensitive: true, minKeys: 2, natural: false },],// (options) 要求同一个声明块中的变量按字母顺序排列  https://eslint.org/docs/rules/sort-vars'sort-vars': ['off', { ignoreCase: false }],// (options) 需要或禁止注释起点后的空格  https://eslint.org/docs/rules/spaced-comment'spaced-comment': ['off', 'always', { exceptions: [], markers: [] }],// (options) 需要或者禁止strict指令  https://eslint.org/docs/rules/strictstrict: ['off', 'safe'],// 要求Symbol函数有一个描述参数'symbol-description': 'off',// 将当前作用域的变量提升到顶部'vars-on-top': 'off',// (options) 要求或禁止Yoda条件(字面量的值放在变量前)  https://eslint.org/docs/rules/yodayoda: ['off', 'never', { exceptRange: false, onlyEquality: false }],/* Layout & Formatting: These rules care about how the code looks rather than how it executes */// (options) 强制数组左括号之后右括号之前换行  https://eslint.org/docs/rules/array-bracket-newline'array-bracket-newline': ['off','consistent',{ multiline: true, minItems: null },],// (options) 强制或禁止数组及解构赋值左右的空格  https://eslint.org/docs/rules/array-bracket-spacing'array-bracket-spacing': ['off','never',{ singleValue: true, objectsInArrays: true, arraysInArrays: true },],// (options) 强制数组元素之间换行  https://eslint.org/docs/rules/array-element-newline'array-element-newline': ['off', 'always'],// (options) 箭头函数参数需要用括号包裹  https://eslint.org/docs/rules/arrow-parens'arrow-parens': ['off', 'always'],// (options) 箭头函数箭头的前后需要空格  https://eslint.org/docs/rules/arrow-spacing'arrow-spacing': ['off', { before: true, after: true }],// (options) 禁止或强制块作用域括号与内容之间有空格  https://eslint.org/docs/rules/block-spacing'block-spacing': ['off', 'always'],// (options) 强制在代码块中使用一致的大括号风格  https://eslint.org/docs/rules/brace-style'brace-style': ['off', '1tbs', { allowSingleLine: false }],// (options) 需要或者禁用数组或对象的尾部逗号  https://eslint.org/docs/rules/comma-dangle'comma-dangle': ['off', 'never'],// (options) 强制逗号前后的空格样式  https://eslint.org/docs/rules/comma-spacing'comma-spacing': ['off', { before: false, after: true }],// (options) 强制使用一致的逗号风格  https://eslint.org/docs/rules/comma-style'comma-style': ['off', 'last'],// (options) 禁止或强制计算属性(动态属性)内部的空格样式  https://eslint.org/docs/rules/computed-property-spacing'computed-property-spacing': ['off', 'never'],// (options) 强制点号前后的换行风格(与对象一行还是与属性一行)  https://eslint.org/docs/rules/dot-location'dot-location': ['off', 'object'],// (options) 需要或禁止文件最后添加换行  https://eslint.org/docs/rules/eol-last'eol-last': ['off', 'always'],// (options) 要求或禁止在函数名称和调用它的左括号之间使用空格  https://eslint.org/docs/rules/func-call-spacing'func-call-spacing': ['off', 'never'],// (options) 强制函数调用的参数之间换行  https://eslint.org/docs/rules/function-call-argument-newline'function-call-argument-newline': ['off', 'always'],// (options) 在函数参数或参数的括号内强制执行一致的换行符  https://eslint.org/docs/rules/function-paren-newline'function-paren-newline': ['off', 'multiline'],// (options) 强制生成器函数符号*左右的空格  https://eslint.org/docs/rules/generator-star-spacing'generator-star-spacing': ['off', { before: true, after: false }],// (options) 强制维持隐式返回的箭头函数方法体的位置的一致性  https://eslint.org/docs/rules/implicit-arrow-linebreak'implicit-arrow-linebreak': ['off', 'beside'],// (options) 强制维持代码缩进的一致性  https://eslint.org/docs/rules/indentindent: ['off', 4],// (options) 强制在 JSX 属性中一致使用双引号或单引号  https://eslint.org/docs/rules/jsx-quotes'jsx-quotes': ['off', 'prefer-double'],// (options) 强制对象字面量属性中的键和值之间保持一致的间距  https://eslint.org/docs/rules/key-spacing'key-spacing': ['off',{ beforeColon: false, afterColon: true, mode: 'strict' },],// (options) 强制关键字周围保持一致的间距  https://eslint.org/docs/rules/keyword-spacing'keyword-spacing': ['off', { before: true, after: true }],// options 强制单行注释的位置  https://eslint.org/docs/rules/line-comment-position'line-comment-position': ['off', { position: 'above' }],// (options) 强制执行一致的行尾样式  https://eslint.org/docs/rules/linebreak-style'linebreak-style': ['off', 'unix'],// (options) 要求注释前后空行  https://eslint.org/docs/rules/lines-around-comment'lines-around-comment': ['off', { beforeBlockComment: true }],// (options) 要求或禁止类成员之间空行  https://eslint.org/docs/rules/lines-between-class-members'lines-between-class-members': ['off', 'always'],// options 强制单行的最大字符数  https://eslint.org/docs/rules/max-len'max-len': ['off', { code: 80, tabWidth: 4 }],// options 强制每行允许的最大语句数  https://eslint.org/docs/rules/max-statements-per-line'max-statements-per-line': ['off', { max: 1 }],// (options) 强制或禁止三元表达式的操作数之间换行  https://eslint.org/docs/rules/multiline-ternary'multiline-ternary': ['off', 'always'],// (options) 强制或禁止new关键字调用无参构造函数的时候省略括号  https://eslint.org/docs/rules/new-parens'new-parens': ['off', 'always'],// (options) 每链式调用一个方法后需要换行  https://eslint.org/docs/rules/newline-per-chained-call'newline-per-chained-call': ['off', { ignoreChainWithDepth: 2 }],// (options) 禁止不必要的括号  https://eslint.org/docs/rules/no-extra-parens'no-extra-parens': ['off', 'all'],// *options 禁止混用tab和空格用于缩进  https://eslint.org/docs/rules/no-mixed-spaces-and-tabs'no-mixed-spaces-and-tabs': ['error'],// (options) 禁止不是用于缩进的多个空格  https://eslint.org/docs/rules/no-multi-spaces'no-multi-spaces': ['off',{ ignoreEOLComments: false, exceptions: { Property: true } },],// (options) 禁止多个连续的换行  https://eslint.org/docs/rules/no-multiple-empty-lines'no-multiple-empty-lines': ['off', { max: 2 }],// options 禁止tab字符  https://eslint.org/docs/rules/no-tabs'no-tabs': ['off', { allowIndentationTabs: false }],// (options) 禁止行尾出现尾随空白字符  https://eslint.org/docs/rules/no-trailing-spaces'no-trailing-spaces': ['off',{ skipBlankLines: false, ignoreComments: false },],// () 如果链式调用的属性在同一行则.号前不允许有空白'no-whitespace-before-property': 'off',// (options) 强制单行语句执行一致的位置  https://eslint.org/docs/rules/nonblock-statement-body-position'nonblock-statement-body-position': ['off', 'beside'],// (options) 强制大括号内换行符的一致性  https://eslint.org/docs/rules/object-curly-newline'object-curly-newline': ['off', { consistent: true }],// (options) 强制在大括号中使用一致的空格  https://eslint.org/docs/rules/object-curly-spacing'object-curly-spacing': ['off', 'never'],// (options) 强制将对象的属性放在不同的行上  https://eslint.org/docs/rules/object-property-newline'object-property-newline': ['off', { allowAllPropertiesOnSameLine: false }],// (options) 强制运算符执行一致的换行样式  https://eslint.org/docs/rules/operator-linebreak'operator-linebreak': ['off','after',{ overrides: { '?': 'before', ':': 'before' } },],// (options) 要求或禁止块内执行一致的空行填充  https://eslint.org/docs/rules/padded-blocks'padded-blocks': ['off', 'always', { allowSingleLineBlocks: false }],// (options) 要求或禁止语句间空行填充  https://eslint.org/docs/rules/padding-line-between-statements'padding-line-between-statements': ['off'],// (options) 强制一致使用反引号、双引号或单引号  https://eslint.org/docs/rules/quotesquotes: ['off', 'double'],// (options) 强制剩余(rest)和扩展(spread)运算符及其表达式之间保持一致的间距  https://eslint.org/docs/rules/rest-spread-spacing'rest-spread-spacing': ['off', 'never'],// (options) 要求或禁止分号的使用,而不是自动插入分号  https://eslint.org/docs/rules/semisemi: ['off', 'always', { omitLastInOneLineBlock: true }],// (options) 强制分号前后的空格样式  https://eslint.org/docs/rules/semi-spacing'semi-spacing': ['off', { before: false, after: true }],// (options) 强制分号附近换行符的位置  https://eslint.org/docs/rules/semi-style'semi-style': ['off', 'last'],// (options) 需要或禁止块之前的空格  https://eslint.org/docs/rules/space-before-blocks'space-before-blocks': ['off', 'always'],// (options) 需要或禁止函数名与括号之间的空格  https://eslint.org/docs/rules/space-before-function-paren'space-before-function-paren': ['off', 'always'],// (options) 禁止或强制括号内部的空格样式  https://eslint.org/docs/rules/space-in-parens'space-in-parens': ['off', 'never'],// (options) 需要中缀运算符周围有空格  https://eslint.org/docs/rules/space-infix-ops'space-infix-ops': ['off', { int32Hint: false }],// (options) 要求或禁止在一元运算符之前/之后使用空格  https://eslint.org/docs/rules/space-unary-ops'space-unary-ops': ['off', { words: true, nonwords: false, overrides: {} }],// (options) 强制switch语句中case,default子句冒号周围的空格样式  https://eslint.org/docs/rules/switch-colon-spacing'switch-colon-spacing': ['off', { before: false, after: true }],// (options) 强制模板字符串变量内部的间距  https://eslint.org/docs/rules/template-curly-spacing'template-curly-spacing': ['off', 'never'],// (options) 要求或禁止模板标签函数和模板字面量之间的间距  https://eslint.org/docs/rules/template-tag-spacing'template-tag-spacing': ['off', 'never'],// (options) 需要或禁止Unicode字节顺序标记  https://eslint.org/docs/rules/unicode-bom'unicode-bom': ['off', 'never'],// (options) 需要用括号包裹立即调用函数表达式  https://eslint.org/docs/rules/wrap-iife'wrap-iife': ['off', 'outside', { functionPrototypeMethods: false }],// () 需要用括号包裹正则表达式字面量'wrap-regex': 'off',// (options) 强制yield*表达式中*周围的空格  https://eslint.org/docs/rules/yield-star-spacing'yield-star-spacing': ['off', { before: false, after: true }],}
}

eslint 推荐配置

大部分还是使用recommended打勾的规则,其中layout和formatting部分的规则可以使用prettier来进行代码格式化,所以可以不用。

module.exports = {extends: ['eslint:recommended'],parserOptions: {ecmaVersion: 'latest',sourceType: 'module',},rules: {'no-debugger': 'error','default-param-last': 'error',eqeqeq: ['warn', 'smart'],'prefer-const': ['warn', { destructuring: 'all' }],'no-empty': ['warn', { allowEmptyCatch: true }],'no-unused-expressions': 'warn','require-await': 'warn','no-useless-escape': 'warn','no-warning-comments': ['warn',{ terms: ['todo', 'fixme', 'xxx'], location: 'start' },],}
}

这样的配置对于有特殊文件的比如vue,ts,jsx,tsx就不太适合了,还需要添加另外的插件及规则。

eslint内置规则介绍相关推荐

  1. ASP.NET的内置对象介绍

    ASP.NET的内置对象介绍 1.Response 2.Request 3.Server 4.Application 5.Session 6.Cooki Request对象主要是让服务器取得客户端浏览 ...

  2. fortify SCA内置规则破解到简单工具开发使用

    摘要:前几天无意间有个小伙伴问我要fortify 内置最新规则,突然觉得内置规则既然能扫描代码缺陷,而他本质上是使用xml语言和内置源语言来编写的,心想能不能将其还原为xml文件,这样自定义规则的时候 ...

  3. Hive学习之路(四):Hive内置函数介绍与实现WordCount

    内容简介 一.Hive内置函数介绍 二.Hive常用内置函数介绍 1.数值计算函数 2.字符串操作函数 3.日期函数 4.聚合函数 5.表生成函数 三.使用Hive函数完成WordCount 1.创建 ...

  4. python提供的内置函数有哪些_python内置函数介绍

    内置函数,一般都是因为使用频率比较频繁,所以通过内置函数的形式提供出来.对内置函数通过分类分析,基本的数据操作有数学运算.逻辑操作.集合操作.字符串操作等. 说起我正式了解内置函数之前,接触到的是la ...

  5. 深入浅出CChart 每日一课——快乐高四第九课 于无声处,CChart内置功能介绍之数据存取篇...

    笨笨长期以来一直使用Origin软件画图和处理数据,但Origin软件没有编程语言的接口.笨笨开发CChart的一个潜在的目标.是想实现Origin软件的功能.当然这是一个不可能达到的目标.Origi ...

  6. PromQL 中内置函数介绍

    Prometheus 提供了其它大量的内置函数,可以对时序数据进行丰富的处理. 某些函数有默认的参数,例如:year(v=vector(time()) instant-vector).其中参数 v 是 ...

  7. Windows2003内置用户组介绍

    内置普通组: Administrators 属于该administators本地组内的用户,都具备系统管理员的权限,它们拥有对这台计算机最大的控制权限,可以执行整台计算机的管理任务.内置的系统管理员帐 ...

  8. 骁龙820A:内置芯片介绍

    高通骁龙820A内置了Hexagon 680 DSP芯片,如下图所示,可见Hexagon 680在其中占据了很重要的位置. DSP中存在专门处理JPEG图像压缩的部分,这部分内容专门只针对JPEG图像 ...

  9. TP5 验证-内置规则

    系统内置的验证规则如下: 格式验证类 require 验证某个字段必须,例如: 'name'=>'require' number 或者 integer 验证某个字段的值是否为数字(采用filte ...

最新文章

  1. 个人作业3——个人总结(Alpha阶段)
  2. android studio 怎么运行java
  3. nodejs debugging
  4. Azure 国际版与中国版服务列表对(2020年6月版)
  5. Maven简述以及配置使用
  6. Maven : mvn dependency:copy-dependencies
  7. webstorm与Idea禁用自动保存
  8. 无法在VMware Player中安装64位系统
  9. 删除数据oracle,oracle删除数据
  10. 第二百二十一节,jQuery EasyUI,Form(表单)组件
  11. SpringMVC、Struts1和Struts2区别
  12. Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文翻译
  13. 职业学校计算机教学总结报告,中职计算机教师教学工作总结(共6篇) .docx
  14. matlab指数e是如何表示,Matlab中表达e怎么操作?表达e方法详解
  15. 检测工具进阶——结合静态分析的动态分析工具论文分享
  16. Focal-UNet
  17. 论文阅读:Generating Talking Face Landmarks from Speech
  18. 那些只有几行,但是却非常牛逼的代码!
  19. cmd中通过winsat命令测试硬盘、CPU、内存、3d性能等
  20. 在线支付(易宝支付)

热门文章

  1. 使用Gogs轻松搭建可能比GitLab更好用的Git服务平台
  2. sql2012数据库不能登录的解决方法之一
  3. CodeChef Chef and Digit Jumps 题解
  4. Alexa世界网站排名详细研究
  5. 4-20mA换算为实际值公式
  6. L1-018 大笨钟 Python
  7. crack翻译成中文_crack是什么意思中文翻译
  8. 安装Phoenix连接Hase
  9. SAP MM 计划协议5500025001 为什么不能维护SA Release Creation Profile?
  10. 科普:关于屏幕的各种性能参数