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

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

相关文章:

  • CCF-GESP 等级考试 2025年3月认证C++一级真题解析
  • 一文解读DeepSeek在工业制造领域的应用
  • Win32 / C++ ini配置文件解析类(支持简易加解密)
  • 线性代数核心概念与NumPy科学计算实战全解析
  • 鸿蒙学习笔记(1)-文件解读、编写程序、生命周期
  • 汽车高级驾驶辅助系统应用存储MRAM
  • 边缘计算场景下的分布式推理系统架构设计
  • MySQL索引优化最佳实践
  • Python 3.8 Requests 爬虫教程(2025最新版)
  • 递归进阶(用递归改造循环11~20)(1082、1265、1395、1083、1066、1782、1783、1784、1008、1224)
  • 树的深度优先(DFS)和广度优先(BFS)算法
  • Nginx相关漏洞解析
  • Redis 版本演进及主要新特性
  • 常见框架漏洞攻略-Spring篇
  • 拓扑排序(算法基础)
  • 针对信息化软硬件设备:常用询价网站是否够用
  • 【Unity3D脚本与系统设计6】鼠标触摸超时待机实现
  • 全排列 | 下一个排列
  • CSS3学习教程,从入门到精通,CSS3 浮动与清除浮动语法知识点及案例代码(14)
  • 计算机二级:文件操作
  • 杭州模板建站定制网站/模板网站建设开发
  • 网站运营分析/营销策略的重要性
  • 网站建设在线推广/高级seo课程
  • 网站建设仟首先金手指13/网站定制
  • 分销网站建设/最新网站查询工具
  • 计算机系毕设代做网站/软文代写服务