eslint 配置规则解释

配置文件

eslint --init 会生成一个已经配置好的配置文件。
可以使用一个名为 .eslintrc.json 作为的一个单独的配置文件。也可以在 package.json 中指定 eslintConfig 字段

{
	"extends": "eslint:recommended", //继承 eslint 推荐的规则
	"extends": [
        "eslint:recommended",
        "plugin: xxxplugin/规则" // 也可使用 某个插件的规则集
    ],
    "parser": "esprima",// 解析器,还可是 Babel-ESLint | @typescript-eslint/parser 等。如果使用 自定义的解析器,必须指定 parserOptions。如果使用实验性质的语法,需要使用 babel-eslint。不同的 parser 都是为了将代码转换为 eslint 能看懂的代码
	//Parser Options 指定语法环境,不包括 API。例如 es7 的新的 API 是不包含的。如果换了一个 parser,paraerOptions 仍然是需要的
	"parserOptions": {
		"ecmaVersion": 6 | 7 | 8 ...,
        "sourceType": "script"(默认) | "module",
        "ecmaFeatures": {
        	"globalReturn": true | false // 是否允许在全局作用域下使用 return 语句
            "jsx": true // 如要使用 react 仍然要用 eslint-plugin-react
        }
	},
	"plugins": ["a-plugin", "b-plugin"], // 指定插件, eslint-plugin- 开头的插件可以沈略 eslint-plugin-
    "processor": "a-plugin/a-processor", // 处理器,一般插件会提供相应的处理器。处理器可以从另一种文件中提取JavaScript代码,然后让ESLint对JavaScript代码进行编码。或者处理器可以出于某种目的在预处理中转换JavaScript代码。
    "overrides": [
        {
            "files": ["*.md"], // 也可对特定类型的文件使用相应的规则
            "processor": "a-plugin/xxx处理器",
            "rules": {
             }
        }
    ],
    "env": { // 用来指定相应的环境,并启用相应的全局 API ,可以指定多个
		"es6": true | false,
		"browser": true | false,
		"node": true | false,
		"plugin-A/es2020": true, // 为某个插件指定 env
	},
	"globals": { // 当访问当前源文件内未定义的变量时,no-undef 规则将发出警告。如果你想在一个源文件里使用全局变量,推荐你在 ESLint 中定义这些全局变量,这样 ESLint 就不会发出警告了。
        "var1": "writable",
        "var2": "readonly",
        "var3": "off"
    },
    "rules": {
		"规则1": "off", // 关闭规则 
        "规则2": "error", // 开启规则,出现错误时,会导致程序退出
        "规则4": "warn", // 开启规则,出现错误时,不会导致程序退出
        "规则3": ["error", "double"],
        "plugin1/rule1": "error" // 复写某个插件的某个 rule
	}
}

使用注释控制规则

对于某个代码块进行禁用、使用特定规则对代码块进行禁用

/* eslint-disable */

alert('foo');

/* eslint-enable */

/* eslint-disable no-alert, no-console */

alert('foo');
console.log('bar');

/* eslint-enable no-alert, no-console */

对整个文件进行规则禁用、和使用特定规则对整个文件进行禁用

/* eslint-disable */

alert('foo');

/* eslint-disable no-alert */

alert('foo');

禁用当前行和下一行、和使用特定规则禁用当前行和下一行、禁用插件的某个规则


alert('foo'); // eslint-disable-line

// eslint-disable-next-line
alert('foo');

/* eslint-disable-next-line */
alert('foo');

alert('foo'); /* eslint-disable-line */

alert('foo'); // eslint-disable-line no-alert, quotes, semi

// eslint-disable-next-line no-alert, quotes, semi
alert('foo');

alert('foo'); /* eslint-disable-line no-alert, quotes, semi */

/* eslint-disable-next-line no-alert, quotes, semi */
alert('foo');

foo(); // eslint-disable-line example/rule-name
foo(); /* eslint-disable-line example/rule-name */

配置文件级联

在一个项目中可以写很多个 eslint 配置文件

  • 在校验某部分代码时,会首先去查看当前目录下有没有配置文件
    • 如果当前目录的配置文件中有 root:true 属性,那么采用当前目录的配置文件
    • 如果当前目录的配置文件中没有 root:true 属性,那么继续往上找 parent,直到找到有 root:true 属性的,在向上查找的这个路径上发现的 esllint 配置文件最后会被合并到一起,层级越往里的优先级越高
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值