【问题标题】:How to disable autofix for specific rules in eslint using CLI?如何使用 CLI 禁用 eslint 中特定规则的自动修复?
【发布时间】:2020-11-03 04:40:13
【问题描述】:

我希望能够禁用 --fix 在控制台中运行 eslint 以获取 repo 时修复的规则。这样做的原因是因为 --fix 会导致我们的 jsdoc eslint 规则出现不良行为。它会在我们的项目中创建无效或有时为空的 jsdoc——这通常会导致更多的 eslint 规则(由于我们的配置)并导致大量的手动修复或删除。

我只想运行 --fix 而不涉及任何 jsdoc 规则,以便我可以手动完成 jsdoc - 而 eslint 修复所有其余规则。

我遇到了这个 SO 问题-但答案中提到的包不支持非核心插件。

ESLint autofix ignore rule

除了每次运行 linter 时修改我的 eslintrc 文件或使用 vscode 进行 linting 和修改 Web 编辑器的配置之外,我还能做些什么吗?对于较新的文件来说这没什么大不了的,但是当存在数百个我无法轻松自动修复的间距错误时,检查旧文件是一件苦差事。

【问题讨论】:

  • 刚遇到这个问题,发现截至一周前,上面链接的包现在“支持所有 eslint 核心规则和 3rd-party 插件(范围包除外)。”

标签: eslint


【解决方案1】:

从技术上讲,这已经存在,对吧?如果用户想避免自动修复特定规则,他们可以使用:

eslint somedir --fix --rule "somerule: 0"

或者,如果他们想将一组规则列入白名单,他们可以使用 &nbps --no-eslintrc 并直接指定规则或使用 --config 并指向他们想要用于修复的特定配置。

【讨论】:

  • 我知道规则 arg,但由于我们已经设置了 20 条 jsdoc 规则,因此必须记住如何复制和粘贴超长命令来修复它会很痛苦。我想这是一个选择。理想情况下,我们也不希望有 2 个配置 - 更多的是寻找如何修改我们当前的配置文件以支持这一点。但如果没有更简单的选择,我们可能不得不选择您提到的选项之一
  • mm 好的,由你选择
  • 怎么样cat disable-rules.txt | xargs eslint src —fix —rule
  • 嘿。你能找到其他方法吗
  • 嘿..我的回答有用吗
【解决方案2】:

使用.eslintrc.js 文件,您可以执行以下操作:

const isFixMode = process.argv.includes('--fix');

const config = {
  rules: {
    'no-console': 'error',
    ...(isFixMode && {
      'no-console': 'warn',
    }),
  },
};

export.modules = config;

【讨论】:

    【解决方案3】:

    好的,这是另一个想法。将您的.eslinrc 文件转换为.eslintrc.js。这将允许您以编程方式设置 eslint 配置。

    然后您可以使用 commander 库来检测 —fix 标志并设置一个布尔值来确定您要禁用哪些 eslint 规则。

    【讨论】:

    • 你能用一个简短的代码 sn-p 来编辑你的答案吗?我计划稍后阅读文档 - 但如果您的答案中有代码示例,我认为这对未来的读者会有用。
    猜你喜欢
    • 2020-04-17
    • 2018-01-08
    • 2018-05-29
    • 2017-11-05
    • 2021-05-21
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多