husky的简介以及如果想要放飞自我的解决方案

husky 是一个 Git Hooks 管理工具,它的主要作用是 在 Git 提交(commit)、推送(push)等操作时执行自定义脚本,比如代码检查(Lint)、单元测试(Test)、格式化代码(Prettier)等。

📌 husky 的作用

  1. 强制代码规范:在 pre-commit 钩子执行 eslint,确保提交的代码符合规范。
  2. 自动格式化代码:结合 prettierpre-commit 里自动格式化代码,避免手动修改格式。
  3. 防止提交 Bug:在 pre-push 执行单元测试 (npm test),如果测试未通过,禁止推送。
  4. 自动执行脚本:可以用 Git 钩子自动运行 builddeployupdate 等脚本。

🎯 husky 的常见 Git Hooks

Git Hook触发时机作用
pre-commitgit commit 之前运行 eslintprettier、检查代码
commit-msggit commit 之后规范化提交信息(如 feat: xxx
pre-pushgit push 之前运行 npm test,防止推送有 Bug 的代码
pre-rebasegit rebase 之前确保变基不会出错
post-mergegit pull 之后自动安装依赖 npm install

husky 的使用

1️⃣ 安装 husky
npx husky-init && npm install

或者手动安装:

npm install husky --save-dev

然后启用 Git Hooks:

npx husky install
2️⃣ 添加 pre-commit 钩子
npx husky add .husky/pre-commit "npm run lint"

这样,每次 git commit 时,都会执行 npm run lint 进行代码检查。

3️⃣ 添加 pre-push 钩子
npx husky add .husky/pre-push "npm test"

这样,每次 git push 时,都会执行 npm test 运行单元测试,如果测试失败,推送会被阻止。


📢 什么时候应该用 husky

适合团队合作、多人开发,强制代码规范。
适合大型项目,避免提交低质量代码。
如果是个人项目,且没有严格代码规范,可以不装 husky

在这里插入图片描述

🚀 如果想要移除husky

有些个人开发者不需要很强的代码规范,新接手一些轮子的时候可能会遇到 git commit 报错,是因为 huskypre-commit 阶段执行 npm test,但你的 package.json没有 test 脚本,导致错误。

解决方案

假设 husky 是你项目中的一个依赖包,你可以通过以下步骤使用 Yarn 将其移除:

  1. 在项目根目录下运行以下命令:
yarn remove husky
  1. 这会同时:
  • 从 package.json 中删除 husky 的依赖记录
  • 删除 node_modules 中相关的 husky 文件
  1. 如果你之前配置了 husky 的钩子(hooks),你可能还需要:
  • 检查 .git/hooks 目录,删除相关的钩子文件
  • 或者直接删除 .husky 目录(如果存在)

示例完整操作:

# 移除 husky 包
yarn remove husky

# 如果需要,删除 husky 配置目录
rm -r -fo .husky

完成后,你可以用以下命令验证 husky 是否已移除:

yarn list --pattern husky

如果返回空结果,说明 husky 已成功移除。

在这里插入图片描述


或者

npm uninstall husky
rm -rf .husky

然后重新提交代码。

在这里插入图片描述


你可以看看 huskypre-commit 里到底执行了什么:

cat .husky/pre-commit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值