项目规范化4-githooks的配置与使用
閱讀時間:全文 377 字,預估用時 2 分鐘
創作日期:2020-05-05
上篇文章:JavaScript的继承整理
BEGIN
应用场景
现在代码管理一般使用git, precommit就是在git的commit操作前执行相关命令, 一般配合代码lint、prettier或commitlint使用, 配套的还有prepush、commit-msg等.
文档
使用husky实现git hooks
功能
项目地址: husky Github 🔗
配置
husky依赖于git hooks
, 所以在使用husky前需要确保git版本等是符合要求的
git
husky依赖于Node >= 10 和 Git >= 2.13.0, 所以要先确保node和git版本符合要求
初始化git init
后我们可以看到./.git/hooks
目录下有很多*.sample
的文件, 这些文件都是git hooks
的示例文件. 如果没有看到./.git/hooks
目录请检查git版本
husky
安装
执行命令yarn add husky --dev
安装husky包
完成后可在目录./.git/hooks
看到增加了很多不带.sample
后缀的文件
配置方式
- 在
package.json
文件中新增"husky"
键, 如:{ "...": "...", "husky": { "hooks": { "pre-commit": "...", "pre-push": "...", "...": "..." } } }
- 如果husky版本大于
1.0.0
, 则可在项目根目录生成.huskyrc
,.huskyrc.json
,.huskyrc.js
或husky.config.js
文件, 内容相当于导出值为package.json
的husky
键的值.
环境变量
HUSKY_SKIP_HOOKS=1
: 跳过或忽略所有hooksHUSKY_SKIP_INSTALL=1
: 安装husky时不会同时安装挂钩到./.git/hooks
HUSKY_DEBUG=1
: 开启debug模式$HUSKY_GIT_PARAMS
: 输出git执行命令的参数
示例
使用前面两篇文章定义的scripts命令, precommit时检查代码并格式化代码, 并检查commit msg是否符合commitlint规范:
{
"...": "...",
"husky": {
"hooks": {
"pre-commit": "yarn lint && yarn prettier",
"commit-msg": "commitlint -E $HUSKY_GIT_PARAMS"
}
}
}
FINISH
上篇文章:JavaScript的继承整理