husky 的使用 (v8)

747 阅读2分钟

文档说明:

  1. 官方文档:typicode.github.io/husky/
  2. v8 是指当前 husky 是 8.0.0 版本;
  3. 在使用 husky 工具前,请确保项目已经对 git 进行了初始化工作。(git init)

husky 是一款流行的 Git 钩子管理工具,皆在简化和强化增强 Git 钩子的使用,使开发者能勾在 Git 操作的特定阶段(如提交、推送等)自动执行脚本,从而提升开发流程的规范化和自动化程度。以下从多个方面对其进行说明:

1. 核心功能

  • 管理 Git 钩子:Git 钩子是在 Git 仓库执行特定操作(如 commit、push、merge等)时自动触发的脚本。husky 提供了一种便捷的方式来管理这些钩子,无需手动在 .git/hooks 目录中创建和维护脚本文件,降低了使用门槛。

  • 自动化执行脚本: 借助 husky,开发者可以在钩子触发时执行自定义脚本,例如在 pre-commit 钩子中运行代码检查工具(如ESLint、Prettier),确保提交的代码符合团队的代码规范;在 pre-push 钩子中运行测试套件,防止不合格的代码被推送到远程仓库。

2. 优势

  • 简化工作流程: husky 使得在开发过程中执行自动化任务变得简单直观,无需开发者手动记忆和执行各种检查与测试命令,减少了人为错误,提高了开发效率。

  • 团队协作一致性: 通过在团队项目中统一配置 husky 钩子,所有成员在执行 Git 操作时都会执行相同的脚本,保证了代码规范、测试流程等方面的一致性,有助于提升代码质量和项目的可维护性。

  • 灵活性: 支持各种类型的脚本和工具集成,开发者可以根据项目需求定制不同的钩子行为,无论是运行代码格式化工具、测试框架、还是执行自定义的脚本逻辑,都能轻松实现。

3. 安装与设置

  • 安装: husky 可以通过 npm、yarn 或 pnpm 安装到项目中。以 pnpm 为例,在项目目录执行以下命令将其安装为开发依赖。
pnpm install husky --save -dev
  • 初始化: 安装完成后,需要初始化 husky。
npx husky install

此命令会在项目根目录创建 .husky 目录,并在 package.json 中自动添加 prepare脚本

{
  "scripts":{
    "prepare":"husky install" // 可以将 install 去除
  }
}
  • 配置: pre-commit 文件
npm run lint:lint-eslint;
npm run lint:lint-prettier;

# 或者使用以下推荐的方式(该方式详细配置,请查看lint-staged 配置)
npm run lint:lint-staged;

至此,当开发者在向远程仓库提交代码时,husky 会根据 ESLint、Prettier 的配置自动检测项目代码,如有错误会检测出错误信息并提示;校验通过(或修改错误代码)后可再次提交。