husky的使用

husky,使用 · 浏览次数 : 1330

小编点评

**husky简介** husky 是一个用于 Git 的工具,可以自动生成文档以供 git 管理。它支持版本 4.x 及更高版本,并且可以使用 npm 的 package.json 配置文件进行设置。 **生成预览文件的方法** 1. 安装 husky (使用 npm 或 yarn):`npm install husky --save-dev` 或 `yarn add husky --dev` 2. 在 package.json 中添加 `scripts.prepare` 属性:`npm run prepare` 3. 创建 `./husky/pre-commit` 文件,并添加以下内容:`npm run xxx` 4. 在项目根目录中创建 `.husky/pre-commit` 文件,并添加以下内容:`npx husky add .husky/pre-commit "npm test"` **注意** * `xxxx` 代表要执行的 npm 命令,例如 `npm install` 或 `npm run test`。 * `husky add .husky/pre-commit` 创建一个名为 `pre-commit` 的目录,并自动添加该目录下的脚本到 git hooks 中。 * 为了使用 husky,您需要在本地创建一个 `.husky/pre-commit` 文件并添加您想要执行的 npm 命令。 * 新版本的 husky 会在 `package.json` 中添加 `husky` 配置,无需在代码中配置。

正文

前言

在做个人项目的时候遇到一个需求,要在编完代码之后代码提交之前生成一个预览文件,手动执行脚本难免会遗漏。然后就想到之前在工作中使用过的husky,正好拿过来用一用;

husky是什么?

husky是一个给git增加 hooks 工具

打开文档发现husky的版本已经更新到8.x了,这时候就照着新的步骤来一遍:

npm install husky --save-dev // 安装husky
npm pkg set scripts.prepare="husky install"
// 在package.json的scripts字段中添加prepare钩子,使用npm install的时候会自动执行 npm run prepare 相当于执行husky install, 优化了初始化流程
// 需要注意的是,npm pkg set是 npm v7才有的命令,如果不支持就手动添加,也挺简单。
npx husky add .husky/pre-commit "npm run xxx"
// 创建hook,执行之后会在项目的目录中添加.husjy目录,并增加pre-commit钩子,钩子中会添加一段脚本;接下来就要手动添加其他命令,比如我增加了如下代码
npm run generate
git add .

如此在提交代码之前就先执行generate命令,然后使用git add .将代码添加到git仓库的缓存区,最后会跟随着项目代码一起提交到代码仓库。

旧版本v4和当前版本的区别

在4.x之前,安装husky过程中它会自动在.git/hooks目录下增加一系列的钩子,每个钩子里都有调用husky的程序。当git操作的时候触发git钩子就会自动调用husky程序,然后按照package.json的配置执行程序。( husky 版本≤4.x 在package.json中增加配置)

{
    "husky": {
        "hooks": {
            "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" // commit-msg是git hook
        }
    },
}

在4.x之后,有所变化,安装过程不会在.git/hooks目录下创建钩子,而是会修改.git/config 文件:增加hooksPath字段。然后按照需求手动来增加hook,比如执行npx husky add .husky/pre-commit "npm test"会增加一个钩子,同时在项目根目录自动创建的.husky/pre-commit文件。

新版本的优点是不需要在package.json配置,毕竟package.json是不能写注释的,可读性要差许多,代码灵活性也差许多。

与husky的使用相似的内容: