ESLint 是一个用来识别 ECMAScript/JavaScript 并且按照规则给出报告的代码检测工具,是一个用来检查代码的工具。
代码检查是一种静态的分析,常用于寻找有问题的模式或者代码,并且不依赖于具体的编码风格。对大多数编程语言来说都会有代码检查,一般来说编译程序会内置检查工具。
JavaScript 是一个动态的弱类型语言,在开发中比较容易出错。因为没有编译程序,为了寻找 JavaScript 代码错误通常需要在执行过程中不断调试。
ESLint 这样的工具可以让程序员在编码的过程中发现问题,而不是在执行的过程中发现问题。
第一种:会在代码保存的时候校验,但是只会在控制台进行提示。是vue-cli 自带的
第二种:使用vscode 插件,可以在编写代码时校验,提示错误,并自动保存修复错误。需要通过vscode进行配置
在vscode插件中 查找 Eslint插件 安装并启用
打开 vscode 配置文件 settins.json,写入 json 配置
此时,eslint 的vscode 配置好了,同时也要注意,如果你的 vscode 安装了自动辅助代码格式的插件,请在项目的工作区禁用。
另外,需要将 Format on Save 这个选项的勾选状态去掉,否则会影响 eslint 的自动保存
// .eslintrc.js
module.exports = {
// 指定解析器
'parse': '',
// 指定解析器选项
'parserOptions': {
// 默认设置为3,5(默认),可使用 6、7、8 或 9 来指定想要使用的 ECMAScript 版本。
//也可使用年份命名的版本号指定为 2015(同 6),2016(同7),或 2017(同8)或 2018(同9)
"ecmaVersion": 6,
// 设置为 "script" (默认) 或 "module"(如果你的代码是 ECMAScript 模块)。
"sourceType": "module",
// 对象,表示想使用的额外的语言特性
"ecmaFeatures": {
"jsx": true // 启用 JSX
"globalReturn": true // 允许在全局作用域下使用 return 语句
"impliedStrict": true // 启用全局 strict mode (如果 ecmaVersion 是 5 或更高)
}
},
// 指定脚本的运行环境
'env': {},
// 别人可以直接使用你配置好的ESLint, ESLint 一旦发现配置文件中有 "root": true,
// 它就会停止在父级目录中寻找。
'root': true,
// 脚本在执行期间访问的额外的全局变量
'globals': {},
// 使用 "extends": "eslint:recommended" 可启用推荐的规则
"extends": "eslint:recommended",
// 启用的规则及其各自的错误级别
'rules': {
"semi": 2
}
};
Possible Errors (JavaScript 代码中可能的错误或逻辑错误)
规则 | 解释 |
---|---|
no-console | 禁用 console |
no-await-in-loop | 禁止在循环中出现 await |
no-cond-assign | 禁止条件表达式中出现赋值操作符 |
no-constant-condition | 禁止在条件中使用常量表达式 |
no-debugger | 禁用 debugger |
no-dupe-args | 禁止 function 定义中出现重名参数 |
no-dupe-keys | 禁止对象字面量中出现重复的 key |
no-duplicate-case | 禁止出现重复的 case 标签 |
no-empty | 禁止出现空语句块 |
no-empty-character-class | 禁止在正则表达式中使用空字符集 |
no-extra-boolean-cast | 禁止不必要的布尔转换 |
no-extra-parens | 禁止不必要的括号 |
no-extra-semi | 禁止不必要的分号 |
no-func-assign | 禁止对 function 声明重新赋值 |
no-inner-declarations | 禁止在嵌套的块中出现变量声明或 function 声明 |
no-irregular-whitespace | 禁止在字符串和注释之外不规则的空白 |
no-obj-calls | 禁止把全局对象作为函数调用 |
no-regex-spaces | 禁止正则表达式字面量中出现多个空格 |
no-unreachable | 禁止在return、throw、continue 和 break 语句之后出现不可达代码 |
valid-typeof | 强制 typeof 表达式与有效的字符串进行比较 |
|
Stylistic Issues (关于风格指南)
规则 解释 array-bracket-newline 在数组开括号后和闭括号前强制换行 array-bracket-spacing 强制数组方括号中使用一致的空格 array-element-newline 强制数组元素间出现换行 block-spacing 禁止或强制在代码块中开括号前和闭括号后有空格 brace-style 强制在代码块中使用一致的大括号风格 camelcase 强制使用骆驼拼写法命名约定 comma-dangle 要求或禁止末尾逗号 comma-style 强制使用一致的逗号风格 computed-property-spacing 强制在计算的属性的方括号中使用一致的空格 eol-last 要求或禁止文件末尾存在空行 func-call-spacing 要求或禁止在函数标识符和其调用之间有空格 function-paren-newline 强制在函数括号内使用一致的换行 implicit-arrow-linebreak 强制隐式返回的箭头函数体的位置 indent 强制使用一致的缩进 jsx-quotes 强制在 JSX 属性中一致地使用双引号或单引号 multiline-ternary 要求或禁止在三元操作数中间换行 new-cap 要求构造函数首字母大写 new-parens 要求调用无参构造函数时有圆括号 eqeqeq 要求使用 === 和 !== no-trailing-spaces 禁用行尾空格 | |
---|---|
ECMAScript 6
规则 解释 no-const-assign 禁止修改 const 声明的变量 no-dupe-class-members 禁止类成员中出现重复的名称 no-duplicate-imports 禁止重复模块导入 no-restricted-imports 禁止使用指定的 import 加载的模块 no-this-before-super 禁止在构造函数中,在调用 super() 之前使用 this 或 super no-useless-computed-key 禁止在对象中使用不必要的计算属性 no-useless-constructor 禁用不必要的构造函数 no-useless-ren 要求使用 let 或 const 而不是 var object-shorthand 要求或禁止对象字面量中方法和属性使用简写语法 prefer-arrow-callback 要求回调函数使用箭头函数 prefer-const 要求使用 const 声明那些声明后不再被修改的变量 | |
---|---|
参考自:https://blog.csdn.net/weixin_34246551/article/details/91422835
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。