husky+lint-staged 在未暂存的文件上运行
husky+lint-staged runs on unstaged files
我正在尝试添加一个预提交 git 挂钩,它将 运行 我的 linter 仅在接触(暂存)文件上。我的项目基于 Create React App.
我在 package.json
中添加了以下内容:
"scripts": {
"lint": "eslint 'src/**/*.js'",
"lintfix": "eslint 'src/**/*.js' --fix"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*": ["npm run lintfix --", "git add"]
}
我在 "*"
上 运行 的原因是因为我希望脚本本身 (lintfix) 强制执行它的配置 (src/**/*.js
)。
问题是我在我的整个代码库中遇到了很多 eslint 错误,而不仅仅是我希望的暂存文件。
运行仅在暂存文件上设置我的 eslint 我需要什么配置?
来自 lint-staged readme.md :
{ "*": "your-cmd" }
This config will execute your-cmd
with the list of currently staged
files passed as arguments.
So, considering you did git add file1.ext file2.ext, lint-staged will
run the following command:
your-cmd file1.ext file2.ext
所以看看你的 package.json,你是 运行 以下 :
eslint 'src/**/*.js' --fix file1.js file2.js file3.js fileX.js... ....
您需要将 npm run lintfix --
替换为 eslint --fix
以首先测试它是否有效(应该),然后在不使用通用 src/**/*.js
正则表达式的情况下调整您的 lintfix
命令。
我正在尝试添加一个预提交 git 挂钩,它将 运行 我的 linter 仅在接触(暂存)文件上。我的项目基于 Create React App.
我在 package.json
中添加了以下内容:
"scripts": {
"lint": "eslint 'src/**/*.js'",
"lintfix": "eslint 'src/**/*.js' --fix"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*": ["npm run lintfix --", "git add"]
}
我在 "*"
上 运行 的原因是因为我希望脚本本身 (lintfix) 强制执行它的配置 (src/**/*.js
)。
问题是我在我的整个代码库中遇到了很多 eslint 错误,而不仅仅是我希望的暂存文件。
运行仅在暂存文件上设置我的 eslint 我需要什么配置?
来自 lint-staged readme.md :
{ "*": "your-cmd" }
This config will execute
your-cmd
with the list of currently staged files passed as arguments.So, considering you did git add file1.ext file2.ext, lint-staged will run the following command:
your-cmd file1.ext file2.ext
所以看看你的 package.json,你是 运行 以下 :
eslint 'src/**/*.js' --fix file1.js file2.js file3.js fileX.js... ....
您需要将 npm run lintfix --
替换为 eslint --fix
以首先测试它是否有效(应该),然后在不使用通用 src/**/*.js
正则表达式的情况下调整您的 lintfix
命令。