介绍
@zeit/git-hooks 是一个便捷的 npm 包,可以帮助前端工程师更好地管理 Git 钩子。Git 钩子是 Git 工作流的一部分,它们是在特定时间运行的脚本,然后根据输出来控制当前操作。当你运行 git commit,Git 钩子将运行在该操作之前或之后定义的脚本。
@zeit/git-hooks 可以帮助开发人员更轻松地添加,管理和调试这些脚本,而不用担心每个人都正确设置了它们。它通过观察并且先于 Git 钩子运行相应的脚本文件,从而将它们组合起来。
安装
在命令行中执行以下命令可安装 @zeit/git-hooks:
--- ------- ------ ---------------
如何使用
创建 Git 钩子
首先,需要创建 .git/hooks/ 目录。如果该目录不存在,则可以通过在项目目录下运行以下命令来创建它:
----- -- -----------
然后需要创建 Git 钩子,例如 pre-commit 钩子,可以通过执行以下命令实现:
----- ---------------------
这使得 pre-commit 文件成为 git pre-commit 钩子的一部分。
添加脚本
接下来,需要在 pre-commit 钩子脚本中添加操作。可以通过执行以下命令来打开钩子脚本:
--- ---------------------
假设我们需要在代码提交之前使用 ESLint 进行代码规范检查,那么以下示例代码将添加到 pre-commit 钩子脚本中:
--------- - --- ------ ------ ---- ------ -- -- -- -------------------------- --- ---- ------------- - ----- ---- ---- ------- ------ --- ------ --- ---- ------- ------ ------- ---- - -- - ---- ---- ------ ----- --------- ---- --------- -- - ------- --- - -- ---- ---- ------- ----- -------- ---- - --
此脚本使用了 ESLint,在代码提交之前对代码进行规范检查。如果该脚本编写正确,则在对代码进行提交之前,ESLint 将首先运行并自动修复代码。如果 ESLint 检查未通过,则会打印相应的错误消息并且该操作会被取消。
挂钩
最后,需要添加 @zeit/git-hooks 以运行你的钩子脚本。可以修改 package.json 中的如下部分:
---------- - -------------- ------- -------- ----------- -
其中,