您确实可以使用 lint-staged 运行多个命令,如果其中一个命令失败,您将获得正确的退出代码,如下例所示。这可以通过新的husky https://github.com/typicode/husky挂钩系统:
有了这样的配置package.json
:
"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"
]
},
配置运行prettier, eslint and tslint
- 在 linting 问题上您会收到以下错误:
husky > pre-commit (node v8.12.0)
↓ Stashing changes... [skipped]
→ No partially staged files found...
❯ Running linters...
❯ Running tasks for src/**/*.{js,jsx,ts,tsx,json,css}
✖ prettier --write
eslint --fix src/
tslint --fix --project .
git add
✖ prettier --write found some errors. Please fix them and try committing again.
...
husky > pre-commit hook failed (add --no-verify to bypass)
最后一行显示 git 自己的pre-commit
挂钩失败,因此您的更改将不会被提交(如果它们不可修复)。