[英]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.