如何禁用“未找到规则'custom-rule'的定义”错误?

时间:2020-10-30 18:46:26

标签: eslint

由于我无法控制的原因,我维护的代码库在具有两个不同规则集的两个不同环境中存在。其中一种环境有规则,而另一种则没有。由于"definition for rule '{custom_rule}' was not found"错误,第二次构建失败。

同样,由于无法控制的原因,我无法合并规则集。如何在ESLint上禁用这些“找不到定义”错误,这样我的构建成功了?

编辑:为澄清起见,我有这样的内容:

11 ...
12 // eslint-disable-next-line custom-rule
13 var thing = new Thing();
14 ...

错误如下:

12:3 error  Definition for rule 'custom-rule' was not found  fb-www/extra-arrow-initializer

2 个答案:

答案 0 :(得分:1)

我在ESLint Discord服务器上对此进行了询问,并从Nicholas Zakas得到了这个答案。我认为这是肯定的答案,因为作为原始作者和杰出贡献者,我想尼古拉斯会知道还有其他选择。

他提议我创建为这些规则名称创建虚拟规则;

@keved我不确定还有很多事情要做。您引用的规则不存在,这是一个错误。我唯一想到的另一件事是在回购中创建一个仅在Travis构建期间引用的虚拟插件。只要存在具有给定名称的规则,就可以避免该错误。该规则实际上不需要执行任何操作,因此您可以只创建一个虚拟规则并将其分配给每个规则名称。

screenshot of the answer in discord

答案 1 :(得分:0)

一种方法是在发生错误的代码行中禁用这些错误。要禁用下一行:

// eslint-disable-next-line no-use-before-define
var thing = new Thing();

或使用单行语法:

var thing = new Thing(); // eslint-disable-line no-use-before-define

请参见eslint docs