为什么安装了prettier的husky hook后提交还是没格式化?
刚给项目配了husky + prettier的pre-commit钩子,但每次提交代码都没触发格式化。已经按文档装了husky、prettier、lint-staged,package.json里配置了:
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,css}": ["prettier --write"]
}
提交时控制台连提示都没有,文件也没变化。试过删除node_modules重装,甚至把prettier命令改成npm脚手架调用,还是不行。是不是和git版本有关?或者需要额外配置git属性?
现在你需要做的是把husky初始化一下,用命令
npx husky-init跑一遍,这会在项目根目录生成一个.husky文件夹。然后打开里面的pre-commit文件,把内容改成npx lint-staged。另外提醒一下,现在的git确实需要手动允许钩子执行,你得确保项目的.git目录下有hooks文件夹,没有的话就自己建一个。还有就是检查下node版本,最好用16以上的,太老的版本可能会有问题。
最后别忘了给package.json加个prepare脚本:
"prepare": "husky install",这样能保证每次安装依赖后钩子都能正常注册。这些都弄完再试试提交,应该就能触发格式化了。要是还不行,可能是你本地的git配置禁用了钩子,可以用
git config core.hooksPath查看一下路径对不对。