这里使用的husky版本:8.0.0
安装
husky
husky是一款git-hooks执行工具,帮助我们在提交代码时执行一些代码检查或其他的操作,一般用到pre-commit和commit-msg钩子。
安装过程请看官方文档的自动安装步骤或手动安装步骤
eslint
代码检查工具。
安装过程请看官方文档
lint-staged
可能有人会和笔者一样觉得,有了husky + eslint还要lint-staged干嘛呢?如果是husky + eslint的话,每次提交代码时会全量进行eslint检查,而lint-staged就跟它名字一样只是对git staged(暂存区)中要提交的代码进行检查。
安装:
- npm install --save-dev lint-staged
- 添加pre-commit钩子
npx husky add .husky/pre-commit 'npx lint-staged'
- 在package.json中配置lint-staged
{
"lint-staged": {
"*.{js,jsx,tsx,ts}": ["eslint --fix"]
}
}
注意点🫵🏻
- 有些文章会要求把.husky/_目录提交到git仓库,其实是不需要的,原因见下方第二点。
- package.json中的
"prepare": "husky install"
不要删,这是一个npm的钩子,每次npm install
的时候会初始化husky(也就是.husky/_目录),保证了新人进入项目,husky是能够正常运行的。 - 这里husky安装好之后就git commit一次,因为笔者遇到一个问题,如果和lint-staged一起提交,如果有代码错误的话,eslint会把.husky下面的钩子脚本的执行权限给去掉,就导致husky不起作用。