当前位置: 首页 > news >正文

【前端】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"; thenecho "${prepend_msg}`(cat $commit_msg_file)`" > "$commit_msg_file"
fi

总结

本文记录了 husky 的基本使用方式和踩到的坑,但本质上需要了解的是:

  1. git hooks
  2. Linux 命令行

好在目前 LLM 非常发达,碰到类似的问题可以直接问 AI。

http://www.lryc.cn/news/129231.html

相关文章:

  • Spring系列篇 -- Bean的生命周期
  • 分类预测 | MATLAB实现BO-BiGRU贝叶斯优化双向门控循环单元多输入分类预测
  • Linux权限系列--给普通用户添加某个命令的sudo权限
  • 11-数据结构-栈和队列的应用(C语言)
  • uni-app自定义多环境配置,动态修改appid
  • 04 - 分离头指针情况、理解HEAD和branch
  • C#__基本特性和使用
  • mysql(3)
  • 阿里巴巴常用的12个后端开发工具
  • php base64转图片保存本地
  • unity物体移动至指定位置
  • 详解C#-static void Main(string[] args)
  • 中大许少辉博士《乡村振兴战略下传统村落文化旅游设计》中国建筑工业出版社八一付梓。
  • Matplotlib数据可视化(五)
  • Python爬虫——requests_post请求
  • excel 下载方法封装
  • 按日,周,月,季,年统计;获取对应的时间段
  • 【eNSP】交换机(vlan和vlan间通信)
  • 2011年下半年 软件设计师 上午试卷2
  • Linux中安装MySQL8版本,安装MySQL步骤,MySQL8离线安装
  • MES生产管理系统如何与ERP系统集成
  • Kafka如何保证消息⼀定能被消费
  • [USACO1.5] 八皇后 Checker Challenge
  • 【Mysql】MVCC版本机制的多并发
  • Vue--》打造个性化医疗服务的医院预约系统(六)
  • Unity ARFoundation 配置工程 (Android)
  • 【广州虚拟现实开发】VR智能中控系统进一步提高VR教学管理水平
  • 关于WordPress 的时间倒计时
  • 极光笔记 | 如何为您的业务开发和训练一个AI-BOT
  • 如何给ELK日志加上索引