【问题标题】:How to add exception to a eslint rule?如何向 eslint 规则添加例外?
【发布时间】:2023-03-14 20:53:01
【问题描述】:

我正在尝试在我的 eslint 配置文件中使用 linting 规则 -- Disallow multiple spaces (no-multi-spaces)。我正在使用当前最新版本的 eslint。

我知道这条规则不允许语句中有多个空格 例如

if(foo  === "bar") {}

这里会失败,这很好。 但在这种情况下它也会失败

var React          = require('react');
var ReactRouter    = require('react-router');

我不希望在此处应用该规则。

在这种变量声明的情况下,我有什么办法可以阻止 lint 规则被应用?

【问题讨论】:

  • 嗯,我怀疑该规则是专门为捕获您想要允许的代码而创建的。
  • @Barmar 我应该删除这条规则吗?
  • 可能,我怀疑有什么方法可以区分这两种情况。

标签: javascript eslint


【解决方案1】:

此规则 (no-multi-spaces) 有一个选项 exceptions,您可以将其配置为忽略所有变量声明。配置应如下所示:

no-multi-spaces: ["error", { exceptions: { "VariableDeclarator": true } }]

这将跳过检查中的所有变量声明。

通常,您还可以使用 cmets 禁用任何 ESLint 规则。 ESLint 支持块样式 cmets:/* eslint-disable */ /* eslint-enable */ 禁用所有规则或 /* eslint-disable rule-name */ /* eslint-enable rule-name*/ 禁用特定规则。禁用和启用 cmets 之间的所有内容都将被忽略。您也可以使用内联 cmets:// eslint-disable-line 禁用当前行的所有规则,或 // eslint-disable-line rule-name 禁用特定规则。同样适用于// eslint-disable-next-line,但适用于以下行。

如果一切都失败了,您可以在配置中禁用该规则。如果您发现自己处于需要不断使用 cmets 的情况,则很可能此规则不适合您的编码风格。并非每条规则都适合每个人,启用尽可能多的规则并没有什么好处。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-14
    • 2021-05-15
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 2020-02-27
    • 2020-11-04
    • 2021-04-05
    相关资源
    最近更新 更多