最近我新开始的前端项目,或者后端 NodeJS 项目,总之涉及到 Javascript 的代码都刻意用了最严格 airbnb
规则进行检查,检查工具是 eslint
。凡事总有例外,有个别情况下,我需要对某个文件,或者某一块代码,或者某一行代码禁用所有检查或禁用某条规则,毕竟这个规则太严了。最初遇到这种需求,我去 Google 搜索,后来意识到这些内容应该在官网写得很清楚。于是,这篇文章也从一份资料整理变成了官网翻译。
针对一块代码
/* eslint-disable */
alert('foo');
/* eslint-enable */
针对在 /* eslint-disable */
和 /* eslint-enable */
之间的代码禁用检查。
指定规则
跟上面类似,加上指定规则名称即可。
/* eslint-disable no-alert, no-console */
alert('foo');
console.log('bar');
/* eslint-enable no-alert, no-console */
针对整个文件
在文件开头加上 /* eslint-disable */
。
/* eslint-disable */
alert('foo');
指定规则
同样是在后面加上规则名称就可以了。
/* eslint-disable no-alert */
alert('foo');
针对一行代码
用 eslint-disable-line
禁用对当前行的检查,用 eslint-disable-next-line
禁用对下一行代码的检查。
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');
关于插件
如果要禁用的规则名称属于某个插件,比如要禁用 eslint-plugin-example
的 rule-name
规则,那么规则名称就写成 example/rule-name
。
foo(); // eslint-disable-line example/rule-name
foo(); /* eslint-disable-line example/rule-name */
这个例子是针对一行代码禁用某个插件的一条规则,这个插件规则名称的写法适用于上述所有场景比如针对整个文件、一块代码的禁用。