[英]Husky with lint-staged is keep on running forever for the failure cases
在我的项目中,这是项目结构:
client/
.git/
services/
nest-services/
package.json
apps/
app1/
..
appn/
// no package.json here under
在nest-services
中,我想添加预提交 lint 检查(eslint 仅在 app1 的 Nest TypeScript 代码中——开始)。
通过查看各个地方,我找到了带有“lint-staged”的Husky
。 我安装了 husky 和 lint-staged 的最新版本。
我在nest-services/package.json
中按如下方式设置哈士奇:
"prepare": "cd ../../ && husky install services/nest-services/.husky"
这是我在nest-services/package.json
中的集成:
"lint:app1": "eslint apps/app1/src --format table",
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"apps/app1/src/**/*.ts": [
"eslint apps/app1/src --format table"
]
}
还有我的services/nest-services/.husky/pre-submit
:
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
cd services/nest-services
yarn lint:app1
但是,每当我在修改后的暂存文件中运行它时,肯定的情况都可以正常工作。 但如果出现 lint 故障,它不会停止。 lint-stage
继续运行。
这里有什么问题?
明白了这个问题。
请参考lintstaged 帮助。
默认情况下,它会并行启动任务。 不知何故, eslint --format table
无法通过lintstaged
调度正常工作。 所以我改变
"lint:app1": "eslint apps/app1/src --format table",
经过
"lint:app1": "yarn lint-staged --quiet --concurrent false --config./.lintsagedrc"
所以总的来说我的package.json
看起来像:
"lint:prepare": "cd ../../ && husky install services/nest-services/.husky"
"lint:app1": "yarn lint-staged --quiet --concurrent false --config ./.lintstagedrc"
简单的!
我的lintstagedrc
看起来像:
{
"apps/app1/(src|test)/**/*.(ts|tsx)": [
"eslint --format table"
]
}
我更新.husky/pre-commit
看起来像:
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
yarn --cwd services/nest-services lint:app1
就这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.