如何防止eslint阻塞git commit?

vdzxcuhz  于 2023-09-29  发布在  Git
关注(0)|答案(6)|浏览(197)

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

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

我怎样才能防止eslint阻止我提交?我希望它仍然警告我关于TODOs等,但我希望能够提交我的代码以及。

cpjpxq1n

cpjpxq1n1#

你有一个预提交钩子。

git commit --no-verify

可以避免一次。或者你可以从.git/hooks中完全删除它。

7cjasjjr

7cjasjjr2#

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

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

unftdfkk3#

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

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

它解决了问题。

vecaoik1

vecaoik14#

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

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

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

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

这将防止警告显示在所有虽然
否则,您需要查看为防止提交而设置的内容,很可能是位于root/.git/hooks/pre-commit的预提交钩子中的内容,并告诉它允许警告和阻止错误

oknwwptz

oknwwptz5#

解决方案

我导航到.git/hooks目录,找到了一个预提交bash脚本。在eslint失败的情况下,我将返回值从1更改为0,这解决了问题。
0值表示通过并将允许提交继续,非零值表示失败状态并将取消提交。

fafcakar

fafcakar6#

如果您使用的是像Vitesse这样的Starter Template,并且还希望永久删除这些检查,请按照以下步骤操作
将目录切换到您的项目,然后

pnpm rm simple-git-hooks

删除package.json中不必要的配置

{
  ...,
  "scripts": {
    ...,
    "postinstall": "npx simple-git-hooks"
  },
  ...,
  "simple-git-hooks": {
    "pre-commit": "pnpm lint-staged"
  },
  "lint-staged": {
    "*": "eslint --fix"
  },
  ...
}

移除现有的挂钩

rm -rf .git/hooks

相关问题