ESlint官网
ESLint 是一个可配置的 JavaScript 检查器。 它可以帮助你发现并修复 JavaScript 代码中的问题。 问题可以是任何东西,从潜在的运行时错误,到不遵循最佳实践,再到风格问题。
ESLint 包含数百个你可以使用的内置规则。 你还可以创建自定义规则或使用其他人通过 插件 创建的规则
在项目中放置 ESLint 配置。
ESLint 支持多种格式的配置文件:
如果同一个目录下有多个配置文件,ESLint 只使用一个。 优先顺序如下:
可共享配置-通过 npm 共享的 ESLint 配置。
ESLint插件 - npm 模块,可包含一组 ESLint 规则、配置、处理器和环境
ESLint 解析器 - 将代码转换为 ESLint 可以评估的抽象语法树
自定义处理器 - 从其他类型的文件提取 JavaScript 代码,然后让 ESLint 对 JavaScript 代码进行检查
ESLint 格式化器
本文以nodejs项目为例:
npm i eslint -D
.\node_modules\.bin\eslint --init
或者使用下面命令来进行配置
npm init @eslint/config
根据我的nodejs项目配置,自动创建出来.eslintrc.js的是这个样子
module.exports = {
"env": {
"browser": true,
"es2021": true
},
"extends": "eslint:recommended",
"overrides": [
{
"env": {
"node": true
},
"files": [
".eslintrc.{js,cjs}"
],
"parserOptions": {
"sourceType": "script"
}
}
],
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"rules": {
}
}
module.exports = {
// 默认情况下,ESLint 会在所有父级目录里寻找配置文件,一直到根目录。"root": true,它就会停止在父级目录中寻找
root: true,
"env": { // 预定义的全局变量
"browser": true,
"commonjs": true,
"es2021": true,
"node": true
},
// 一个配置文件可以被基础配置中的已启用的规则继承
"extends": "eslint:recommended",// 继承推荐的规则
// 为特定类型的文件指定处理器
"overrides": [
],
// 指定你想要支持的 语言选项
"parserOptions": {
"ecmaVersion": "latest"// ecma 最新
},
"rules": { // 0:off 关闭规则,1:warn 开启规则,展示警告,2:error 开启规则 展示错误,触发程序退出
"no-unused-vars": 0,// 未使用的变量报错,关闭
'no-debugger': 'off',
'no-console': 'off',
"indent": [2],/* 内部缩进2个空格,属性间隔开1个空格,自动对其属性缩进 */
"array-bracket-spacing": [2,"never"],// 数据中不能存在空格
"comma-dangle": [2,'never'],// 禁止末尾逗号
"key-spacing": 2, // 对象键值对前后的空格
"block-spacing": 2,
"keyword-spacing": 2,// 关键字周围的空格
"no-multi-spaces": 2,// 禁止多余的空格
"arrow-spacing": 2,// 箭头函数的空格
"space-infix-ops": 2, // 操作符左右的空格
"space-unary-ops": [2,{ "words": true, "nonwords": false }],// 一元操作符的空格
"spaced-comment": [2,"always"],// 注释语句前的空格
"template-tag-spacing": [2,'always'],// 模板标记和它们的字面量之间有空格
"object-curly-spacing": [2,'always'],// 强制在花括号中使用一致的空格
"no-whitespace-before-property": 2,// 禁止属性前有空白
"comma-spacing": 2
}
}
欢迎大家指出文章需要改正之处~
学无止境,合作共赢