当前位置: 首页 > article >正文

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

http://www.kler.cn/a/610930.html

相关文章:

  • Linux centos 7 vsftp本地部署脚本
  • 图灵300题-41~60-笔记003
  • vue3项目使用 python +flask 打包成桌面应用
  • CMake 构建的Qt 项目中的构建套件的配置
  • 《精益创业实战》第2章“对需求性进行压力测试” 总结
  • 破局离散制造:主数据管理驱动数字化转型的实践与启示
  • Git撤回操作全场景指南:未推送与已推送,保留和不保留修改的差异处理
  • 质检LIMS系统在食品生产加工企业的应用 如何保证食品生产企业的安全
  • 区块链技术详解:应用场景与核心优势
  • Python----数据分析(足球运动员数据分析)
  • DeepSeek-V3-0324重磅升级:开源大模型的新标杆
  • 基于PSO粒子群优化的多光谱图像融合算法matlab仿真
  • 虚拟机(一):Java 篇
  • 在word中使用zotero添加参考文献并附带超链接
  • Vue.js 完全指南:从入门到精通
  • 【HTML 基础教程】HTML 元素
  • 如何使用 CSS 实现多列布局,有哪些注意事项
  • 3. 轴指令(omron 机器自动化控制器)——>MC_GearIn
  • 开启TCP-SYNcookie保护缓解网络洪水攻击,增强服务器运行的稳定性。将 TMOUT=300 添加到 /etc/profile 文件提高安全
  • centos 7 LVM管理命令