前言
在现代 Web 应用开发中,前端开发人员需要经常进行版本控制和代码管理。其中, Git 是最常用的版本控制系统之一。然而,人们常常犯错如提交不规范的代码,导致仓库混乱。
为此,我们需要一个工具来检查贡献者的提交并进行相关的操作。而 Husky 就是这样一个工具,它支持 Git hooks 配置,将代码规范化并自动进行校验。我们可以通过 npm 包 @fisker/husky-config 来更加便捷地使用 Husky。
安装
安装 @fisker/husky-config 的方式与绝大部分 npm 包一样,使用 npm 或 yarn 即可,例如:
npm install --save-dev @fisker/husky-config
使用
1. 初始化 Husky
在项目的根目录下运行以下命令来安装 Husky:
npx husky install
2. 配置 Hooks
修改 package.json
,添加以下代码:
"husky": { "hooks": { "pre-commit": "lint-staged", "commit-msg": "fisker commit-msg" } },
其中, pre-commit
钩子将在每次提交前运行 lint-staged
命令,并检查当前目录下暂存的文件是否符合规范。
而 commit-msg
钩子用于在每次提交时运行 fisker commit-msg
指令,以确保提交信息(commit message)符合预设的规范。而 fisker commit-msg
即为我们安装了 @fisker/husky-config 包后的校验指令。
3. 指定校验规则
去项目的根目录下创建 .fiskerrc.js
文件,并添加以下内容:
module.exports = { types: ["feat", "fix", "docs", "style", "refactor", "test", "chore", "revert"], subjectMaxLength: 100, subjectSeparator: " ", subjectCase: "sentence-case", subjectRequired: true, bodyMinLength: 10, };
这里的规则内容可以自定义修改。具体的说明如下:
types
字段:定义可用的提交类型;subjectMaxLength
字段:规定提交信息的最大长度;subjectSeparator
字段:规定主题和具体信息之间的分隔符;subjectCase
字段:规定主题的字母大小写格式;subjectRequired
字段:规定提交必须包含主题(也称为标题);bodyMinLength
字段:规定提交信息的具体内容最少包含的字符数量。
4. 运行 Husky
现在我们就可以使用 Husky 提供的 Automerge 功能对代码进行规范化了。
在终端输入以下代码,启动 Husky:
npx husky add .husky/commit-msg "npx --no-install fisker commit-msg $1"
然后,可以通过以下代码测试提交是否符合规范(示例):
git commit -m "feat: 新特性"
此时,提交信息符合预设的格式,并将正常提交。
而输入以下代码:
git commit -m "新特性"
则将无法提交,因为提交信息必须包含标题。
最后,为了使检查更加严格,我们可以添加以下代码,使校验规则在每次提交时都生效:
npx husky add .husky/pre-commit "npx --no-install lint-staged"
在终端中输入以上命令即可。
结语
这样,我们就利用了 @fisker/husky-config 包实现了 Git hooks 配置,将代码规范化并自动进行校验。这对于前端开发人员在团队开发中的协作和代码管理非常有帮助。
更多细节和功能可参照 @fisker/husky-config 的 GitHub 主页,或者通过 npx fisker --help
查看。当然,更多功能和配置你也可以去官方 Husky 来查看。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc2a8b5cbfe1ea06120c0