前端配置husky,commit-lint

1.husky配置

什么是husky?

husky是 git 的hook工具,就是用于git commit之前进行自定义命令。 我们可以使用husky在代码提交之前进行相应的检查,防止不规范的代码被提交到仓库。

安装husky

text 复制代码
pnpm add --save-dev husky

初始化husky

text 复制代码
npx husky init

执行后:

  • 项目根目录下会生成一个 .husky 文件夹。
  • 里面会包含一个默认的 pre-commit 示例 Hook 文件。

在.husky/pre-commit中编写命令

在pre-commit文件我们可以写在git提交之前进行的命令。

注意,这些pnpm命令提前在package.json文件中定义好:

pre-commit文件中的命令示例:

shell 复制代码
pnpm lint
pnpm format
git add -A

2.commit-lint

commit-lint可以规范我们的提交信息。

怎么规范的?

commit-lint规范git提交的描述词,比如我们对代码的样式部分进行了更改,提交信息应该这样写:

text 复制代码
git commit -m "style: 样式进行修改"

如果我们修改的是一些锁翠的代码,可以这样写:

text 复制代码
git commit -m "chore: 配置commit-lint"

如果不写stylechore等描述词,commit-lint拒绝提交。

安装commit-lint

text 复制代码
pnpm add -D @commitlint/cli @commitlint/config-conventional

创建配置文件

在项目根目录下创建 commitlint.config.js(或 .commitlintrc),添加以下内容:

js 复制代码
import '@commitlint/config-conventional'

export default { extends: ['@commitlint/config-conventional'] }

配置 husky 的 commit-msg Hook

Husky 需要在 commit-msg 阶段运行 commitlint,以验证提交信息。

创建 .husky/commit-msg 文件,并添加以下命令:

text 复制代码
pnpm commitlint --edit $1

随便提交测试一下

commit-lint描述词

在下面图中的文件中我们可以找到commit-lint定义的描述词:

  • feat:新功能(Feature)
  • fix:修复 bug(Bug fix)
  • docs:文档更改(Documentation)
  • style:代码样式调整(Formatting, whitespace changes)
  • refactor:重构(代码优化,不新增功能也不修 bug)
  • perf:性能优化(Performance improvements)
  • test:添加或修改测试(Tests)
  • build:构建系统或外部依赖更改(Build system)
  • ci:CI 配置或脚本更改(Continuous Integration)
  • chore:杂项(不修改 src 或 test 的更改)
  • revert:回滚之前的提交(Revert)

提交格式:

text 复制代码
git commit -m "chore: 配置commit-lint"
相关推荐
持久的棒棒君3 小时前
npm安装electron下载太慢,导致报错
前端·electron·npm
zy2152154 小时前
Git 命令全流程总结
git
crary,记忆5 小时前
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
前端·webpack·angular·angular.js
漂流瓶jz5 小时前
让数据"流动"起来!Node.js实现流式渲染/流式传输与背后的HTTP原理
前端·javascript·node.js
SamHou06 小时前
手把手 CSS 盒子模型——从零开始的奶奶级 Web 开发教程2
前端·css·web
我不吃饼干6 小时前
从 Vue3 源码中了解你所不知道的 never
前端·typescript
开航母的李大6 小时前
【中间件】Web服务、消息队列、缓存与微服务治理:Nginx、Kafka、Redis、Nacos 详解
前端·redis·nginx·缓存·微服务·kafka
Bruk.Liu6 小时前
《Minio 分片上传实现(基于Spring Boot)》
前端·spring boot·minio
鱼樱前端7 小时前
Vue3+d3-cloud+d3-scale+d3-scale-chromatic实现词云组件
前端·javascript·vue.js
zhangxingchao7 小时前
Flutter入门:Flutter开发必备Dart基础
前端