Eslint配置速查

Eslint配置速查

{
	"extends": ["eslint:recommended", "next", "plugin:@next/next/recommended"],
	"rules": {
		"semi": ["error", "always"],
		"quotes": ["error", "single"],
		"array-callback-return": "error", // 某些Array的操作方法必须有返回值,例如:map reduce
		"array-bracket-spacing": [2, "never"],
		"constructor-super": "error", // 构造函数内 派生类的构造者必须调用 super()。 非派生类的构造器不得调用 super()
		"brace-style": [2, "1tbs", { "allowSingleLine": true }],
		"consistent-return": "error",
		"curly": ["error", "all"],
		"default-case": "error",
		"dot-location": ["error", "property"],
		"eqeqeq": ["error", "allow-null"], // 必须使用 === || !==
		"no-alert": "error", // 不允许使用alert
		"no-loop-func": "error",
		"no-unneeded-ternary": "error",
		"no-unused-expressions": "error",
		"arrow-parens": "error",
		"wrap-iife": ["error", "inside"], // 自执行函数需要使用()()的方法调用
		"template-curly-spacing": ["error", "never"], // 模版字符串内{}两侧不能出现空格
		"switch-colon-spacing": ["error", { "after": true, "before": false }], // switch 语句中的 case 和 default 子句周围的间距,
		"space-in-parens": ["error", "never"], // ()内是否需要有空格
		"space-before-blocks": ["error", "always"], // 函数() 和 {} 之间是否需要空格
		"semi-style": ["error", "last"], // ; 结尾的位置,
		"no-await-in-loop": "error", // 循环中不允许出现await
		"for-direction": "error", // 不允许出现死循环的for  或 switch
		"no-class-assign": "error", // 类名是否允许再次被声明
		"no-compare-neg-zero": "error", // 这条规则应该对试图与 -0 比较的代码提出警告,因为这不会像预期的那样工作。
		"no-cond-assign": "error", // 使用此规则禁用 if、for、while 和 do...while 测试条件中的模糊赋值运算符。
		"no-const-assign": "error", // 不能修改const变量
		"no-constant-binary-expression": "error", //评估为真或假的比较和总是短路或从不短路的逻辑表达式
		"no-constant-condition": "error", // 这条规则不允许在以下测试条件中使用常量表达式: if、for、while 或 do...while 语句 ?: 三元表达式
		"no-constructor-return": "error", //不允许在constructor内使用return
		"no-control-regex": "error", //这条规则不允许使用控制字符和一些转义序列与正则表达式中的控制字符匹配。
		"no-debugger": "error", // 不允许出现debugger
		"no-dupe-args": "error", // 不允许在一个函数接受到的形参出现相同的参数名
		"no-dupe-class-members": "error", // 不允许类内出现相同的方法名称
		"no-dupe-else-if": "error", // 这条规则不允许在同一个 if-else-if 链中出现重复的条件。
		"no-dupe-keys": "error", // 对象内不能出现相同的key
		"no-duplicate-case": "error", // switch 中不能出现相同值的case值
		"no-duplicate-imports": "error", //这条规则要求所有可以合并的单个模块的导入都在于一个 import 语句中
		"no-empty-character-class": "error", // 这条规则不允许正则表达式中的空字符类。
		"no-empty-pattern": "error", //  不允许 非结构化对象和数组中的任何空模式 (需要添加兜底)
		"no-ex-assign": "error", // 这条规则不允许在 catch 子句中重新分配异常。
		"no-fallthrough": "error", // 不允许switch语句中,case值会透传的情况
		"no-func-assign": "error", // 函数名不允许被重复声明
		"no-import-assign": "error", // 这条规则对导入的绑定的分配、增量和减量发出警告。
		"no-inner-declarations": "error", // 这条规则要求函数声明和可选的变量声明必须在程序的根部,或在函数主体的根部,或在类静态块的主体根部。
		"no-invalid-regexp": "error", // 这条规则不允许在 RegExp 构造函数中使用无效的正则表达式字符串。
		"no-irregular-whitespace": "error", // 这条规则的目的是捕捉非正常制表符和空格的无效空白 不允许使用
		"no-loss-of-precision": "error", // 这条规则将不允许使用在运行时由于 64 位浮点四舍五入而在转换为 JS Number 时失去精度的数字字面。
		"no-misleading-character-class": "error", // 不允许 包含多个码位字符的正则表达式。
		"no-new-native-nonconstructor": "error", // 此规则旨在阻止使用 new 操作符意外调用原生 JavaScript 全局函数。这些函数是: Symbol BigInt
		"no-new-symbol": "error", // 这条规则的目的是防止用 new 运算符意外地调用 Symbol。
		"no-obj-calls": "error", // 这条规则不允许将 Math、JSON、Reflect、Atomics 和 Intl 对象作为函数调用。
		"no-promise-executor-return": "error", // 这条规则不允许从 Promise 执行器函数中返回值。 只允许不带值的 return,因为它是一个控制流语句。
		"no-prototype-builtins": "error", // 这条规则不允许在对象实例上直接调用一些 Object.prototype 方法。
		"no-self-assign": "error", // 不允许把自身赋值给自身
		"no-self-compare": "error", // 不允许自身和自身做比较 提出这个错误是为了强调一个潜在的混乱和潜在的无意义的代码。几乎没有任何情况下,你会需要将某物与自身进行比较。
		"no-setter-return": "error", // 使用此规则禁用从 setter 返回值,并在 setter 函数中报告return 语句。只有没有值的 return 是允许的,因为它是一个控制流语句。
		"no-sparse-arrays": "error", // 数组中逗号不在元素之前。它不适用于最后一个元素后面的尾部逗号。
		"no-template-curly-in-string": "error", //  这条规则的目的是当一个普通的字符串包含看起来像模板字面的占位符时发出警告。当它发现一个包含模板字面占位符(${something})的字符串,并且使用 " 或 ' 作为引号时,它将发出警告。
		"no-this-before-super": "error", // 这条规则的目的是在调用 super() 之前调用 this/super 关键字
		"no-undef": "error", // 任何对未声明变量的引用都会导致警告,
		"no-unexpected-multiline": "error", // 这条规则不允许出现混乱的多行表达式,即换行看起来像是在结束一个语句,但实际上不是。
		"no-unmodified-loop-condition": "error", // 不允许在循环中修改引用的变量值。
		"no-unreachable": "error", // 使用此规则禁用 return、throw、continue 和 break 后的不可达代码
		"no-unreachable-loop": "error", // 该规则旨在通过对循环体进行静态代码路径分析,检测并禁止最多只能有一次迭代的循环
		"no-unsafe-finally": "error", // 使用此规则禁用 return, throw, break, 和 continue 语句。在 finally 块内。它允许间接使用,例如在 function 或 class 定义中。
		"no-unsafe-negation": "error", // 这条规则不允许否定以下关系运算符的左边操作数。
		"no-unsafe-optional-chaining": "error", // 这条规则的目的是检测一些使用可选链的情况,这些情况不能防止运行时错误。特别是,它标记了可选链式表达式的位置,即短路到 undefined 会导致之后抛出一个 TypeError。
		"no-unused-private-class-members": "error", //  本规则报告未使用的私有类成员:如果一个私有字段或方法的值从未被读取,则被认为是未使用的。 如果一个私有访问器从未被访问过(读或写),则被认为是未使用的。
		"no-unused-vars": "error", //这个规则的目的是消除未使用的变量、函数和函数参数
		"no-use-before-define": "error", // 当遇到对尚未声明的标识符的引用时,该规则将发出警告
		"require-atomic-updates": "error", // 这条规则旨在报告对变量或属性的赋值,在这种情况下,赋值可能是基于过时的值。
		"use-isnan": "error", // 这条规则不允许与 NaN 进行比较。
		"valid-typeof": "error", // 这条规则强制将 typeof 表达式与有效的字符串字面量进行比较。
		"arrow-body-style": ["error", "as-needed"],
		"default-param-last": "error", // 默认参数要放在最后
		"dot-notation": "error", // 尽可能使用 . 来访问对象上的属性值
		"func-name-matching": "error", // 函数与函数名要匹配
		"id-length": ["error", { "max": 20, "min": 1 }], // 设置变量名的长度
		"max-classes-per-file": ["error", 1], // 一 个文件最大类的数量
		"max-depth": ["error", { "max": 3 }], // 最大嵌套层次
		"max-lines": ["error", { "max": 300 }], // 一个文件的最大行数
		"max-lines-per-function": ["error", 120], // 单个函数最大行数
		"max-nested-callbacks": ["error", 5], // 函数回调次数,
		"max-params": ["error", 5], // 最多参数数
		"multiline-comment-style": "error", // 这条规则的目的是为多行注释强制执行一种特定的风格。
		"new-cap": "error", //  构造函数要以大写字母开头
		"no-array-constructor": "error", // 不能使用Array构造一个字面量数组
		"no-case-declarations": "error", // 不能在case中生命变量
		"no-else-return": "error", // 如果 if 块内包含 return 语句,else 块就没有必要了。它的内容可以放在块的外面。
		"no-empty": ["error", { "allowEmptyCatch": true }], // 规则禁用空块语句。 allowEmptyCatch catch 可以
		"no-empty-function": "error", // 禁止空·函数
		"no-empty-static-block": "error", //  此规则将禁止使用空静态块,但会忽略包含注释的静态块的情况。
		"no-eq-null": "error", // 禁止在没有类型检查运算符(== 或 !=)的情况下与 null 比较
		"no-extend-native": "error", // 不允许直接修改内置对象
		"no-extra-boolean-cast": "error", // 不允许不必要的布尔值转换
		"no-extra-label": "error", // 禁止不必要的标签
		"no-extra-semi": "error", // 禁止没有必要的分号
		"no-inline-comments": "error", // 禁止代码后的内联注释
		"no-global-assign": "error", // 禁止·污染全局变量,
		"no-label-var": "error", // 不允许创建一个与范围内的变量同名的标签的坏做法。
		"no-labels": "error", // 每当遇到有标签的语句和 break 或 continue 与标签一起使用时,它都会发出警告。
		"no-lone-blocks": "error", // 这一规则旨在消除脚本顶层或其他区块内不必要的、可能引起混淆的区块
		"no-magic-numbers": "warn", //  规则的目的是通过确保特殊数字 被声明为常量,使其含义明确。
		"no-mixed-operators": "error", // 对于每两个连续使用的混合运算符,将显示一个不同的错误,指出哪里使用了违反规则的特定运算符。
		"no-multi-str": "error", // 禁止使用多行字符串
		"no-negated-condition": "error", // 不允许使用多个连续的否定
		"no-nested-ternary": "error", // 禁止三元嵌套
		"no-return-await": "error", // 禁止不必要的返回
		"no-return-assign": "error", //这条规则的目的是消除 return 语句中的赋值。因此,只要发现有赋值作为 return 的一部分,它就会发出警告。
		"no-shadow": "error", // 不允许 一个局部变量与它所包含的作用域中的变量共享相同的名字的过程。
		"no-useless-rename": "error", // 这条规则不允许将导入、导出和解构操作重命名为同一名称。
		"no-var": "error", // 不能使用var
		"no-void": "error", // 不允许使用void
		"no-warning-comments": ["error"], // 此规则报告包括其配置中指定的任何预定义术语的注释。
		"prefer-const": "error", // 这条规则旨在标记那些使用 let 关键字声明的变量,但在初始赋值后从未重新赋值。
		"prefer-numeric-literals": "error", // 如果调用 parseInt() 或 Number.parseInt()时有两个参数:一个字符串;以及 2(二进制)、8(八进制)或 16(十六进制)的进制选项,则本规则不允许调用。
		"no-multiple-empty-lines": ["error", { "max": 1 }], // 不允许多个连续的空行,
		"no-multi-spaces": "error",
		"max-len": [
			"error",
			{
				"code": 80,
				"tabWidth": 2
			}
		]
	},
	"env": {
		"browser": true,
		"es2021": true
	},
	"parserOptions": {
		"ecmaVersion": 7,
		"sourceType": "module"
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值