详解Eslint 配置及规则说明

详解Eslint 配置及规则说明

本文主要介绍Eslint配置和规则的详细说明。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。

本文介绍了Eslint配置和规则的详细解释,分享给大家,如下:

中国官方网站

安装

可以全局安装,也可以在项目下安装。

以下是项目中的安装示例。您只需要在package.json中添加以下配置并安装它:

“埃斯林特”:“^4.11.0”

配置

配置有两种方式,但推荐使用文件配置,文件配置独立,易于维护。

如何使用文件配置:在项目的根目录下,创建一个名为。eslintrc,并在这个文件中添加一些检查规则。

文件配置模式

Env:你的脚本将在什么环境下运行?

环境可以预置其他环境的全局变量,如brower、node环境变量、es6环境变量、mocha环境变量等。

环境:{

browser: true,

commonjs: true,

es6 :正确

},

全局变量:附加全局变量

全局:{

是的,

wx:没错

},

规则:打开规则并报告错误级别。

规则有三种错误级别:

0“关闭”:关闭规则。

1 warn :打开规则并作为警告(它不会导致检查失败)。

或者‘error’:打开规则并将其视为错误(退出代码为1,检查失败)。

参数描述:

参数1:误差水平

2:加工方法

配置代码注释方式

有时我们可能想忽略代码中对eslint的某种检查,或者添加某种特定的检查。这时,我们可以用以下方法:

示例:

忽略no-undef检查

/* eslint-disable no-undef */

忽略无新支票

/* eslint-禁用no-new */

设置检查

/* eslint eq eq:off */

/* eslint eq eq:0 */

Eslint检查指令

并检查和修理。

eslint * - fix

检查指定的文件。

eslint app.js - fix

WebStorm上的使用

首选项-语言框架-JavaScript-代码质量工具-ESLINT-启用(检查)-应用-确定

规则描述

No-alert: 0,//禁止使用警报确认提示。

“No-array-constructor”:禁止使用2,//数组构造函数。

“No-bitwise”:禁止使用0,//位运算符。

No-caller: 1,//arguments.caller或arguments.callee是禁止的。

No-catch-shadow: 2,//catch子句的参数禁止与外部作用域变量同名。

No-class-assign: 2,//禁止给类赋值

No-cond-assign: 2,//禁止在条件表达式中使用赋值语句。

No-console: 2,//控制台被禁止。

No-const-assign: 2,//禁止修改由const声明的变量

No-constant-condition: 2,//禁止在条件中使用常量表达式if(true) if(1)。

No-continue: 0,//禁止继续。

No-control-regex: 2,//禁止在正则表达式中使用控制字符

No-debugger: 2,//禁止调试器。

No-delete-var: 2,//不能对var声明的变量使用delete运算符。

No-div-regex: 1,//不能使用类似division /=foo/的正则表达式

No-dupe-keys: 2,//创建对象文本{a:1,a:1}时不允许重复的键

No-dupe-args: 2,//函数参数不能重复

“no-duplicate-case”:2,//开关中的case标签不能重复。

No-else-return: 2,//如果if语句中有return,它后面不能跟else语句。

No-empty: 2,block语句中的内容不能为空。

No-empty-character-class: 2,//正则表达式中的[]内容不能为空。

No-empty-label: 2,//禁止使用空标签

No-eq-null: 2,//禁止对null使用==或!=运算符

No-eval: 1,//禁止eval。

No-ex-assign: 2,//禁止给catch语句中的异常参数赋值。

No-extend-native: 2,//禁止扩展本机对象

No-extra-bind: 2,//禁止不必要的函数绑定。

No-extra-boolean-cast: 2,//禁止不必要的布尔转换

No-extra-parens: 2,//禁止不必要的括号

No-extra-semi: 2,//没有多余的冒号

No-fallthrough: 1,//禁止开关穿透

No-floating-decimal: 2,//浮点数中禁止省略0 .5 3。

No-func-assign: 2,//禁止重复函数声明

no-Implicit-compression :1,//禁止隐式转换

No-warning-comments: [1,{terms: [todo , fixme , location: start}],//不能有警告注释。

No-with: 2,//禁用with

Array-bracket-spacing: [2, never],//在非空数组中允许额外的空格吗?

Arrow-parens: 0,//箭头函数用括号括起来。

Arrow-spacing: 0,//=的前后括号

“accessor-pairs”:0,//在对象中使用getter/setter

“Block-scoped-var”:块语句中使用了0,//var

大括号样式:[1, 1tbs],//大括号样式

Callback-return: 1,//避免多次调用回调或其他东西

Camelcase: 2,//h3制驼峰命名

逗号-dangle: [2, never],//在对象的文本项的末尾不能有逗号。

逗号分隔:0,逗号前后的空格//逗号

逗号样式:[2, last],//逗号样式,换行时位于行首或行尾。

复杂度:[0,11],//循环复杂度

Computed-property-spacing: [0, never],//是否允许计算键名什么的

Consistent-return: 0,//return: 0,//return后是否允许省略?

一致-这个:[2,那个],//这个别名

“constructor-super”:0,//非派生类不能调用super,派生类必须调用super。

Curly: [2, all],//在if(){}中必须使用{}

Default-case: 2,//switch语句结尾必须有Default

Dot-location: 0,//对象访问器的位置,在换行时位于行首或行尾。

点符号:[0,{allowkeywords: true}],//避免不必要的方括号

Eol-last: 0,//文件以一个换行符结束。

EQEQEQEQ: 2,//您必须使用同余

“func-names”:0,//函数表达式必须有名称

Func-style: [0, declaration],//函数样式,规定只能使用函数声明/函数表达式。

Generator-star-spacing: 0,在//generator函数*前后的空格

Guard-for-in: 0,//for-in循环将由if语句筛选。

“handle-callback-err”:0,//Nodejs处理错误

Id-length: 0,//变数名称长度

Indent: [2,4],//缩进样式

“Init-declarations”:声明时必须给定0,//初始值。

Key-spacing: [0,{beforecolon: false, aftercolon: true}],//对象的文字量中冒号前后的空格

Lines-around-comment: 0,//行前/行后的注释

Max-depth: [0,4],//嵌套块深度

Max-len: [0,80,4],//字符串的最大长度

Max-nested-callbacks: [0,2],//回调嵌套深度

Max-params: [0,3],//函数最多只能有3个参数。

Max-statements: [0,10],//函数中最多有几个语句。

New-cap: 2,//函数名的第一个大写行必须用New方法调用,第一个小写行必须不用new方法调用。

New-parens: 2,当//new时必须添加括号

Newline-after-var: 2,//变量声明后需要空行吗?

Object-curly-spacing: [0, never],//大括号中是否允许不必要的空格?

object-shorted :0,//h3制对象文本的缩写语法

One-var: 1,//连续声明

Operator-assignment: [0, always],//赋值运算符=-=something

Operator-linebreak: [2, after],//换行时运算符是在行尾还是行首?

Padded-blocks: 0,//是否希望block语句中的第一行末尾有一个空行?

prefere-Const :0,//Const是首选的

prefere-spread :0,//扩展操作是首选的。

prefere-Reflect :0,//反射的方法是首选的。

引号:[1, single],//引号类型`````

Quote-props:[2, always],//对象字面量中的属性名是否强制加双引号?

Radix: 2,//parseInt必须指定第二个参数

“id-match”:0,//命名检测

“require-yield”:0,//生成器函数必须具有yield

Semi: [2, always],//语句强制分号结束。

半间距:[0,{before: false, after: true}],//分号前后的空格

Sort-vars: 0,//在声明变量时对它们进行排序

关键字后有空格:[0,总是],//关键字后是否要有空格?

blocks前的空格:[0, always],//不以新行开始的块{前面是否要有空格?

space-before-function-paren :[0, always],//定义函数时,括号前是否要有一个空格?

Space-in-parens: [0, never],//括号中是否需要空格?

Space-infix-ops: 0,//中缀运算符周围有空格吗?

Space-return-throw-case: 2,要在//return throw case后面加一个空格吗?

Space-unary-ops: [0,{words: true, non words: false}],//是否要在一元运算符的前后添加一个空格?

Spaced-comment: 0,//在注释样式中需要空格还是其他什么?

Strict: 2,//使用严格模式

Use-isNaN: 2,//禁止在比较中使用NaN,只能使用isNaN()

Valid-jsdoc: 0,//jsdoc规则

“valid-typeof”:2,//必须使用type of的有效值。

Vars-on-top: 2,//var必须放在作用域的顶部

wrap-life :[2, inside],//立即执行函数表达式的括号样式

“Wrap-regex”:正则表达式的0,//文本用括号括起来。

Yoda: [2, never]//禁止Yoda条件。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

详解Eslint 配置及规则说明