lint-staged 正在为所有更改的文件运行 ng -lint,而不仅仅是暂存文件
Posted
技术标签:
【中文标题】lint-staged 正在为所有更改的文件运行 ng -lint,而不仅仅是暂存文件【英文标题】:lint-staged is running ng -lint for all the changed files instead of only staged files 【发布时间】:2019-11-05 15:53:06 【问题描述】:我正在尝试将 husky 与 lint-staged 一起用于 angular5 中的预提交 git 钩子。 Prettier 仅格式化暂存文件。但是当我运行 ng lint 命令时,它会在所有更改的文件上运行,而不是仅在暂存文件上运行(我修改了 4 个文件,但只有 2 个文件使用 git add 命令添加到暂存区域。但是所有 4 个文件都检查了 linting 哪个不是我所期望的)
这是.lintstagedrc中的配置
"*.ts,json": [
"prettier --write",
"ng lint myProjName --files",
"git add"
],
"*.less": [
"prettier --write",
"npm run stylelint",
"git add"
]
```
I debugged the issue to some extent. --files takes only the files which have been staged into the account. But still when the linters task completes, I get errors for non staged files as well.
【问题讨论】:
【参考方案1】:--files
标志是在 Angular v7 中添加的(可能是 v7.1.2,除了this 评论,我在更新日志中找不到任何参考)。
v7 之前的版本不支持该标志,或者至少是not documented。
【讨论】:
以上是关于lint-staged 正在为所有更改的文件运行 ng -lint,而不仅仅是暂存文件的主要内容,如果未能解决你的问题,请参考以下文章
在 Intellij idea 中运行“ng lint --fix”后,“lint-staged”包未提交更新的文件
Husky 和 lint-staged 无法运行 gulp 命令