最近,我开始在自己的Frontend构建工具链中使用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
仅在git add
之后且在git commit
之前的暂存区域中验证代码。因此无法理解为什么我们需要再次添加一个git add
。
答案 0 :(得分:9)
自棉绒上进10后,您不需要git add
从v10.0.0开始,对原始暂存文件的任何新修改 将自动添加到提交中。如果您以前的任务 包含一个
git add
步骤,请删除此步骤。自动 行为确保尝试运行后减少了竞争条件 同时执行多个git操作通常会导致错误。
答案 1 :(得分:0)
使用沙哑的方法在提交前会钩住一些动作。参见:https://github.com/typicode/husky
lint-staged
只是更改您的代码并使它整齐(它在 husky 提交之前运行)。更改后,您需要再次添加它以更新 git index 。您所做的更改将在您的提交中生效。