前言
我们一般会在 ESLint 配置文件 rules
中针对我们的项目做一些个性化的禁用规则的配置。
比如我们配置文件中,有以下这一条禁用规则,意味着所有被检测的文件中都不允许使用 alert()
方法。
{ rules: { 'no-alert': 2 } }
假如我们调试某个功能时需要用到 alert()
方法,但又不想 ESLint 检测出现警告,要怎么做呢?
其实,ESLint 支持在你的文件中使用行注释或者块注释的方式来禁止(某些)规则。
正文
一、禁止警告的方式
- 通过块注释来临时禁止规则出现警告
/* eslint-disable */ alert('foo') /* eslint-enable */
- 对指定的规则启用或禁用警告
/* eslint-disable no-alert, no-console */ alert('foo') console.log('bar') /* eslint-enable no-alert, no-console */
- 通过行注释或块注释在某一特定的行上禁用所有规则
// 当前行 alert('foo') // eslint-disable-line alert('foo') /* eslint-disable-line */ // 关闭下一行校验 // eslint-disable-next-line alert('foo') /* eslint-disable-next-line */ alert('foo')
- 在文件顶部加上块注释,使整个文件范围内禁止规则出现警告
/* eslint-disable */ alert('foo')
若临时禁止某个或多个规则出现警告,可以在末尾跟上要禁止的规则,比如:
// eslint-disable-line no-alert
可以在当前行使用alert()
时禁止出现警告。多个规则时,使用逗号 (,
) 隔开。另外,以上所有方法同样适用于插件规则。例如,禁止
eslint-plugin-example
的rule-name
规则,把插件名(example
)和规则名(rule-name
)结合为example/rule-name
。
- 若要禁用一组文件的配置文件中的规则,请使用
overrides
和files
。例如:
// 以下是 Javascript 格式,若 JSON 形式配置文件请注意格式。 { rules: {...}, overrides: [ { files: ['*-test.js','*.spec.js'], rules: { 'no-unused-expressions': 0 } } ] }
最后
*注意:为文件的某部分禁用警告的注释,告诉 ESLint 不要对禁用的代码报告规则的冲突。ESLint 仍解析整个文件,然而,禁用的代码仍需要是有效的 JavaScript 语法。