源 lint 的预提交挂钩检查(未暂存)

Pre commit hook checks for source lint (not staged)

git 钩子的想法是为了防止提交错误的源代码。为此,我使用 husky。这是我的设置:

"husky": {
  "hooks": {
    "pre-commit": "ng lint --fix=true"
  }
}

如果有 lint 错误,它会阻止提交。场景如下:

  1. 开发人员编写了错误的代码(例如 x==y 从 lint 的角度来看应该是 x===y
  2. 他使用了这些命令:git add .git commit -m "msg here" 但都失败了。因为 lint 失败。
  3. 他更正了源代码。但是他没有再次执行 git add .,而是使用了这个命令:git commit -m "msg here"。这次 lint 没有失败,因为在源代码中一切都很好,ng lint 成功了。但实际上,他是在提交之前添加的旧版本。

知道如何防止这种情况吗?

lint-staged 就是您要找的。

它只会对暂存的文件进行 lint,非常高效。

这意味着它会强制您的示例中的开发人员在 lint-staged 接受之前进行修复。

将此放入您的 package.json 文件中:

{ 
   ...
   "devDependencies": {
       "lint-staged": "^10.5.1",
       ...
   }
   ...
   "husky": {
       "hooks": {
           "pre-commit": "lint-staged"
        }
    }
   ...
}