700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 第15课:使用 ESlint 规范化代码

第15课:使用 ESlint 规范化代码

时间:2021-06-06 05:32:04

相关推荐

第15课:使用 ESlint 规范化代码

知识点

安装 ESlint配置规则兼容多数 IDE

安装 ESlint

npm install -g eslint

eslint --init根据提示安装选择需要的配置,这里我选择的是 json 格式的文件。

最后就在根目录下生成.eslintrc.json

配置规则

ESlint 是基于规则在检测代码的。

env:你的脚本将要运行在什么环境中;globals:额外的全局变量;parserOptions:JavaScript 选项。

"parserOptions": {// ECMAScript 版本"ecmaVersion":6,"sourceType":"script",//module// 想使用的额外的语言特性:"ecmaFeatures": {// 允许在全局作用域下使用 return 语句"globalReturn":true,// impliedStric"impliedStrict":true,// 启用 JSX"jsx":true}}

rules:开启规则和发生错误时报告的等级,规则的错误等级有三种:

0 或off:关闭规则。1 或warn:打开规则,并且作为一个警告(并不会导致检查不通过)。2 或error:打开规则,并且作为一个错误(退出码为1,检查不通过)。

ules: {///// 可能的错误 //// 禁止条件表达式中出现赋值操作符"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, "always-multiline"],// 禁用 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语句之后出现不可达代码/*function foo() {return true;console.log("done");}//错误*/"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,.号应与属性在同一行// ob

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。