Angular项目中Husky Prettier预提交钩子无法触发的问题咨询
解决Husky pre-commit钩子未触发的问题
1. 补全缺失依赖
你仅安装了husky和prettier,但未安装lint-staged,先执行以下命令补装:
npm install -D lint-staged
2. 修正lint-staged命令错误
你的package.json中prettier - write存在语法错误,需改为双短横线的正确参数格式,修正后的配置如下:
"lint-staged": { "*.ts": [ "prettier --write", "git add" ] }
3. 适配Husky v6+的新配置逻辑(核心步骤)
若你的Husky版本为v6或更高,原package.json中直接配置husky.hooks的方式已失效,需按以下步骤重新配置:
- 启用Husky钩子:
npx husky install - 在package.json中添加prepare脚本(确保项目克隆后自动启用钩子):
"scripts": { "prepare": "husky install" } - 创建pre-commit钩子文件:
执行后会生成npx husky add .husky/pre-commit "npx lint-staged".husky/pre-commit文件,文件内需包含执行npx lint-staged的命令。
4. 验证钩子生效
重新执行提交操作:
git add . && git commit -m "Test"
此时pre-commit钩子应正常触发,自动格式化test.ts后完成提交。
额外检查项
- 确认项目已初始化Git仓库(你已执行过git add/commit,此步骤可忽略)。
- 若
.husky/pre-commit文件无执行权限,执行chmod +x .husky/pre-commit添加权限。
内容的提问来源于stack exchange,提问作者Ole
相关产品推荐
相关产品推荐

