【问题标题】:Rule is disabled but not violated规则被禁用但未违反
【发布时间】:2016-04-27 16:17:42
【问题描述】:

故事:

我们将ESLint 与一组不同的插件一起使用。很久以前,在一个特定的 JS 文件(Protractor 的页面对象)中,其中一条规则是脚本顶部的 disabled via a comment

/* eslint-disable protractor/no-by-xpath */

因为使用了违反no-by-xpathxpath() 方法,当时我们还没有找到解决方法,我们只是禁用了检查。

问题:

如今,页面对象源代码已更改,不再使用xpath() 方法。但是,该规则被禁用,因为禁用它的评论仍然存在

问题:

我们的目标是在源代码中找到规则被禁用但没有被违反的地方。 ESLint 是否提供任何报告?你会如何解决这个问题?

将不胜感激任何见解和提示。

【问题讨论】:

  • 诚实的问题:为什么不直接搜索代码?因为你有很多eslint-disable
  • @DenysSéguret 对不起,我的意思是问一个通用方法,我们不知道我们正在搜索什么规则。基本上,找到所有被禁用但实际上没有违反的规则。 “no-by-xpath”只是一个例子。谢谢。
  • @DenysSéguret 希望动机很明确。我们并不特别喜欢在特定地方禁用规则,但它时常发生。目标是仅在确实有必要、有意义并且确实可以完成工作时才禁用规则。在源代码中留下禁用规则的 cmets 可能会导致我们忽略代码违规,因为意外留下了“过时”的 cmets。抱歉,我不擅长解释事情:)
  • 有一个closed issue 要求这样做,但没有实现。

标签: javascript eslint static-code-analysis


【解决方案1】:

不,ESLint 没有为此提供任何东西。此功能已被请求多次,但被认为不适合 ESLint 核心。建议这样做的方法是创建另一个使用 ESLint 的 Node API 的工具,并在所有文件上运行两次,一次打开 --no-inline-config 标志,一次关闭该标志,然后比较结果和文件与内联 eslint 配置没有任何区别,则可以移除 cmets。

【讨论】:

猜你喜欢
  • 2022-07-22
  • 2022-07-22
  • 2019-01-09
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
  • 2010-11-21
相关资源
最近更新 更多