Husky v9+ 在 Monorepo/全栈项目中的升级与配置

181 阅读1分钟

现象

当husky升级到9.x后安装提示出现husky - install command is DEPRECATED image.png

在官网(github.com/typicode/hu…) 没有明确说明, 但它推荐使用新的方式: image.png

该命令执行之后自动在package.json生成prepare脚本:

{
  "scripts": {
    "prepare": "husky",
  },
}

也就是不需要我们手动去添加脚本,它自己实现了自动化,这对于.git.husky目录在同一目录下的表现是正常的,一般这样的结构都是纯前端项目,旧husky版本只需要升级到9.x,删除一下prepare脚本, 使用pnpm exec husky init重新init即可

解决方案

对于全栈项目或.git.husky目录不在同一目录下时, 解决方案也很简单,在旧husky命令中,删除掉install即可

原命令:

{
  "scripts": {
    "prepare": "cd .. && husky install frontend/.husky",
  },
}

9.x新命令:

{
  "scripts": {
    "prepare": "cd .. && husky frontend/.husky",
  },
}

之后使用pnpm i去验证即可:

image.png

验证git hook:

image.png