如何正确使用husky做代码格式校验

484 阅读1分钟

这里使用的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(暂存区)中要提交的代码进行检查。

安装:

  1. npm install --save-dev lint-staged
  2. 添加pre-commit钩子npx husky add .husky/pre-commit 'npx lint-staged'
  3. 在package.json中配置lint-staged
{
  "lint-staged": {
    "*.{js,jsx,tsx,ts}": ["eslint --fix"]
  }
}

注意点🫵🏻

  1. 有些文章会要求把.husky/_目录提交到git仓库,其实是不需要的,原因见下方第二点。
  2. package.json中的"prepare": "husky install"不要删,这是一个npm的钩子,每次npm install的时候会初始化husky(也就是.husky/_目录),保证了新人进入项目,husky是能够正常运行的。
  3. 这里husky安装好之后就git commit一次,因为笔者遇到一个问题,如果和lint-staged一起提交,如果有代码错误的话,eslint会把.husky下面的钩子脚本的执行权限给去掉,就导致husky不起作用。