【前端】husky 的使用
后台-插件-广告管理-内容页头部广告(手机) |
husky 是一个优化 git hooks 的 npm 库
Modern native Git hooks made easy
安装和使用
1.安装 npm install husky --save-dev
2. 初始化 npx husky install;官方文档的写法是在 package.json 中初始化,本质上还是执行了 npx husky install 指令
3. 添加 hook: npx husky add .husky/pre-commit "npm test",这段代码会在执行 commit 前运行 npm test
需求
目前的需求并不是在提交前运行某个脚本,而是在提交信息前增加一个前缀,比如 git commit -m "chore: init",最终得到的 message 为 "[xxx] chore:init",为此需要创建一个 prepare-commit-msg 文件:npx husky add .husky/prepare-commit-msg。注意这段指令并没有指定执行该 hook 时执行的指令,结果会导致 .husky/prepare-commit-msg 中会有行 undefined,使 commit 时执行脚本报错:command undefined not found
解决方式:
vim .husky/prepare-commit-msg # 删掉 undefined 行,并添加如下代码: #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" commit_msg_file=$1 prepend_msg="[xxx]" # 检查提交消息是否以 [xxx] 前缀开头 if ! grep -q "$prepend_msg" "$commit_msg_file"; then echo "${prepend_msg}`(cat $commit_msg_file)`" > "$commit_msg_file" fi- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
总结
本文记录了 husky 的基本使用方式和踩到的坑,但本质上需要了解的是:
- git hooks
- Linux 命令行
好在目前 LLM 非常发达,碰到类似的问题可以直接问 AI。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |