commitlint配置

聊一下如何配置commit lint 其实这个问题一直困扰我很久,看了好多文章,都无济于事今天狠下心来终于解决,废话不多说,先上代码,最后阐述原因,因为有的小伙伴就是想找到解决问题办法,至于原因不太关心

注意: npm 版本大于 7

安装 husky

npm install husky --save-dev

启用 Git 挂钩

首先看下项目是否存在.git文件夹,如果不存在需要先初始化git仓库git init
然后再执行下面命令

npx husky install

自动启用hooks

npm set-script prepare "husky install"

添加 commit-msg 钩子

npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

安装 commit 校验工具

npm install --save-dev @commitlint/cli @commitlint/config-conventional

创建 commitlint.config.js 文件

echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js

至此完成了 可以提交信息,试试了

⚠️注意: 如果报错请参考下面解决方法

哈哈哈 报错了吧, 看看是下面这个错误吧
在这里插入图片描述
问题很简单找到 commitlint.config.js 文件
在这里插入图片描述
看下它的编码格式只要不是 UTF-8 就是错误的,所以需要改成UTF-8 格式
在这里插入图片描述
点击上图画框位置选择
在这里插入图片描述
选择UTF-8
在这里插入图片描述
再提交一次试试吧 —> 成功了
在这里插入图片描述

官方配置

https://commitlint.js.org/#/guides-ci-setup

<think>好的,我需要帮助用户在项目中配置Husky和commitlint来实现Git hooks和提交信息校验。首先,我应该回忆一下相关的步骤和工具的作用。 根据用户提供的引用内容,Husky是用来管理Git钩子的工具,可以触发在提交过程中的某些操作,比如运行commitlint来检查提交信息是否符合规范。而commitlint本身需要配置一个配置文件,通常是.commitlintrc.js,用来定义规则。 首先,安装依赖是关键的一步。用户需要安装Husky和commitlint的相关包。根据引用[1]和[4],应该使用npm或者yarn来安装这些依赖。比如,husky、@commitlint/cli和@commitlint/config-conventional。可能需要运行类似npm install husky @commitlint/cli @commitlint/config-conventional --save-dev的命令。 接下来是初始化Husky。引用[2]提到,修改githooks的工作路径,可能需要运行npx husky install来初始化Husky,并创建.husky目录。然后,添加pre-commit钩子,可能需要在pre-commit中运行lint-staged或者其他代码检查工具,但用户的问题主要是关于提交信息的校验,所以重点可能在commit-msg钩子。 根据引用[4],需要添加commitlint的hook到Husky中,具体命令是npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'。这一步会在commit-msg钩子中执行commitlint检查提交信息。 然后,配置commitlint的规则。需要创建.commitlintrc.js文件,并扩展@commitlint/config-conventional的配置。这样commitlint就会根据约定式的规则来校验提交信息,比如要求使用feat、fix等类型,并遵循特定的格式。 可能还需要考虑在package.json中配置prepare脚本,确保Husky在安装依赖后自动初始化。例如,在scripts中添加"prepare": "husky install",这样每次npm install之后会自动设置Husky。 用户可能还关心如何测试配置是否生效。可以建议他们进行一次不符合规范的提交,比如使用git commit -m "test",这时commitlint应该会报错,阻止提交。而正确的提交信息如git commit -m "feat: add new feature"则应该通过校验。 另外,引用[3]提到Commitizen可以帮助生成规范的提交信息,如果用户需要,可以推荐安装Commitizen作为辅助工具,但这可能超出了当前问题的范围,但可以作为补充信息。 需要确保步骤清晰,逐步引导用户完成安装、初始化、配置钩子、设置commitlint规则,并验证配置是否正确。同时,注意使用中文,保持回答结构清晰,避免使用Markdown格式,但根据用户之前的示例,可能需要用代码块来展示命令和配置文件。 总结步骤应该是: 1. 安装依赖 2. 初始化Husky 3. 配置commit-msg钩子 4. 创建commitlint配置文件 5. 测试配置 同时,需要引用相关的引用内容来支持步骤的正确性,比如引用[4]中的命令,引用[1]中的工具作用等。需要确保每个步骤都有对应的引用支持,以增加可信度。</think>### 分步配置 Husky 和 commitlint 的方法 #### 1. 安装依赖 首先安装必要的工具包: ```bash npm install husky @commitlint/cli @commitlint/config-conventional --save-dev ``` 此命令会安装: - `husky`:Git hooks 管理工具[^1] - `@commitlint/cli`:提交信息校验核心工具 - `@commitlint/config-conventional`:预定义的提交规范配置 #### 2. 初始化 Husky ```bash npx husky install ``` 该命令会创建`.husky`目录并设置 Git hooks 的工作路径[^2]。建议在`package.json`中添加 prepare 脚本确保自动初始化: ```json { "scripts": { "prepare": "husky install" } } ``` #### 3. 配置 commit-msg 钩子 添加校验提交信息的钩子: ```bash npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"' ``` 此命令会在`.husky/commit-msg`文件中写入校验指令,在每次提交时触发 commitlint 检查[^4]。 #### 4. 配置提交规范 创建配置文件`.commitlintrc.js`: ```javascript module.exports = { extends: ['@commitlint/config-conventional'] }; ``` 该配置采用 Angular 风格的提交规范,要求格式为:`类型(可选作用域): 描述`,例如: `feat: 新增登录功能` `fix(api): 修复接口超时问题` #### 5. 测试配置 尝试提交不符合规范的信息: ```bash git commit -m "测试提交" ``` 此时会收到类似以下错误提示: ``` ⧗ input: 测试提交 ✖ subject may not be empty [subject-empty] ✖ type may not be empty [type-empty] ``` 正确提交示例: ```bash git commit -m "feat: 添加用户管理模块" ``` #### 扩展功能建议 - 结合 `lint-staged` 在提交前自动格式化代码 - 使用 `Commitizen` 交互式生成提交信息(需额外安装)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gleason.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值