npm 包 husky 使用教程

在前端开发中,我们经常需要编写一些脚本来协助我们完成一些日常工作,如代码检查、打包等。而当我们需要在 Git 提交代码前进行代码规范检查或者测试时,使用 npm 包 husky 就可以帮助我们自动化这个过程。

什么是 husky?

husky 是一个 Git 钩子(Git Hooks)工具,它可以让我们在 Git 执行特定操作前或特定事件发生时触发执行我们预先设置好的脚本。

husky 的主要作用就是自动化 Git 工作流,比如在提交代码前运行测试、格式检查、代码质量检测等操作,提高了代码的可靠性和质量。

安装 husky

使用 husky 很简单,只需在项目根目录下运行以下命令:

--- ------- ----- ----------

使用 husky

创建钩子

首先我们需要创建一个 Git 钩子,在 package.json 中添加一个 pre-commit 钩子:

-
  -------- -
    -------- -
      ------------- ---- --- ---- -- --- --- -----
    -
  -
-

上述配置的含义是在每次提交代码之前先运行 npm run lintnpm run test 命令。

添加自定义脚本

接下来我们需要在 package.json 文件中添加一些脚本,在钩子中引用这些脚本。例如,我们可以添加一个名为 lint 的脚本来检查代码格式:

-
  ---------- -
    ------- ------- ----
  -
-

上述配置的含义是在执行 npm run lint 命令时会运行 eslint 来检查 src 目录下的代码格式。

执行钩子

当我们提交代码时,husky 会自动执行 pre-commit 钩子,并按照 package.json 中的配置运行预先定义好的脚本。如果钩子失败了,Git 将拒绝本次提交并输出错误信息。

示例代码

以下是一个完整的示例代码,演示如何使用 husky 进行代码检查、测试等操作:

安装依赖

--- ------- ----- ------ ---- ----------

package.json

-
  ------- -------------
  ---------- --------
  ---------- -
    ------- ------- -----
    ------- ------
  --
  -------- -
    -------- -
      ------------- ---- --- ---- -- --- --- -----
    -
  -
-

.eslintrc.json

-
  ---------- ---------------------
  -------- -
    ------- --------- ----------
    --------- --------- ---------
  -
-

tests/index.test.js

------------------- -- -- -
  ---------- ------ -- -- -
    ------------------------
  ---
---

当我们执行 git commit -m "commit message" 命令时,husky 就会自动运行 pre-commit 钩子。该钩子指定了要先运行 lint 和 test 脚本,因此 eslint 和 jest 会运行,并检查代码格式和执行测试。如果有任何问题,Git 将拒绝提交并输出错误消息。

总结

使用 husky 可以帮助我们在 Git 之前自动运行预定义的脚本,从而提高代码质量和可靠性。本文介绍了如何安装和使用 husky,同时演示了如何在钩子中引用预定义的脚本。希望这篇文章对你有所帮助!

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/51811