11

最近我开始引入lint-staged我的前端构建工具链。当我检查有关它的文档时,我总是发现它的工作原理如下:

"husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    },
"lint-staged": {
    "src/**/*.{js,jsx,ts,tsx,json,css}": [
      "prettier --write",
      "eslint --fix src/",
      "tslint --fix --project .",
      "git add"
    ]
  },

您可以在链接中找到更多类似的用法:https ://github.com/okonet/lint-staged

我的困惑点是最后一个命令git add,它的目的是什么?

我的理解是lint-staged只验证暂存区 after git add和 before中的代码git commit。所以无法理解为什么我们需要再添加一个git add

4

2 回答 2

25

你不需要git add,因为 lint-staged 10

从 v10.0.0 开始,对原始暂存文件的任何新修改都将自动添加到提交中。如果您的任务之前包含一个git add步骤,请删除它。自动行为确保了较少的竞争条件,因为尝试同时运行多个 git 操作通常会导致错误。

来源:https ://github.com/okonet/lint-staged#v10

于 2020-07-21T12:44:58.643 回答
5

它使用 husky 在您提交之前挂钩一些操作。见:https ://github.com/typicode/husky

lint-staged只需更改您的代码并使其 linting(它在 husky 提交之前运行。更改后,您需要再次添加它以更新git index。您的更改将在您的提交中生效。

于 2019-01-28T07:00:34.910 回答