【问题标题】:How to prevent eslint from blocking git commit?如何防止 eslint 阻塞 git commit?
【发布时间】:2017-12-09 12:57:48
【问题描述】:

我是 eslint 的新手,我正在使用它来执行编码风格。但是,当我在我的代码中写入 TODO 项目时,我会收到一个 eslint 警告,这很好。但是,现在当我尝试 git commit 时,它会返回:

**** ESLint errors found :     
line 145, col 9, Warning - Unexpected 'todo' comment. (no-warning-comments)

如何防止 eslint 阻止我提交?我希望它仍然警告我关于 TODO 等,但我也希望能够提交我的代码。

【问题讨论】:

  • 似乎您在 .git/hooks 中有一个预提交挂钩。要么做git commit --no-verify要么完全禁用钩子。
  • 就是这样!我有一个预提交钩子。
  • 添加为您接受的答案。

标签: git eslint


【解决方案1】:

你有一个预提交钩子。

git commit --no-verify

允许避免一次。或者您可以将其从 .git/hooks 中完全删除。

【讨论】:

    【解决方案2】:

    在我的例子中,罪魁祸首是由创建 CLI (nuxt.js) 的项目自动创建的 package.json 条目。我从我的package.json 中删除了这些条目:

    "lint-staged": { ... },
    "husky": { ... }
    

    它解决了问题。

    【讨论】:

      【解决方案3】:

      通常警告不会阻止只提交错误。如果它设置为错误,您可以将其切换为警告,但看起来您可能已经将其设置为警告。

      "rules": {
       ...
       
       "no-warning-comments": 0,
       ...
      }
      

      另一个选项是禁用给定行的规则

      // eslint-disable-next-line no-warning-comments
      // TODO disable eslint warning for this todo ;)
      

      这将完全阻止警告显示

      否则,您需要查看正在设置什么来阻止提交,很可能是位于 root/.git/hooks/pre-commit 的预提交挂钩中的某些内容,并告诉它允许警告和阻止错误

      【讨论】:

        【解决方案4】:

        在提交时使用 --no-verify 预提交钩子。

        git commit --no-verify -m "Commit message"
        

        【讨论】:

          【解决方案5】:

          解决方案

          我导航到我的 .git/hooks 目录并找到了一个预提交 bash 脚本。在 eslint 失败并解决问题的情况下,我将返回值从 1 更改为 0。

          0 值表示通过并允许提交继续,非零值表示失败状态并将取消提交。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-06-27
            • 2014-12-02
            • 1970-01-01
            • 2015-04-22
            • 2016-10-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多