You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已配置规则仍遇CommitLint报错:请在commitlint.config.js中添加规则

解决CommitLint报错需添加规则的问题

结合你描述的情况(Husky位于Git仓库子目录、多种配置尝试无效),问题大概率是钩子执行时的工作目录不对,导致CommitLint无法正确读取配置文件或依赖。以下是针对性的解决步骤:

1. 修改Husky钩子脚本,切换到仓库根目录执行CommitLint

因为你的Husky钩子在子目录,默认执行npx commitlint时的工作目录是钩子所在的子目录,而你的commitlint.config.js和node_modules应该在仓库根目录。修改钩子脚本如下:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

# 切换到Git仓库根目录
cd "$(git rev-parse --show-toplevel)"
npx commitlint --edit "$1"

git rev-parse --show-toplevel会自动获取当前Git仓库的根目录路径,确保CommitLint能找到根目录下的配置文件和依赖包。

2. 确保CommitLint配置文件的导出格式正确

如果你的项目package.json中没有设置"type": "module",请使用CommonJS格式导出配置,避免ES模块语法的兼容性问题:

// commitlint.config.js
module.exports = {
  extends: ["@commitlint/config-conventional"],
};

3. 验证CommitLint配置是否正常工作

在仓库根目录执行以下命令,直接测试配置有效性:

# 测试符合规范的提交信息
echo "feat: add user authentication" | npx commitlint

如果命令输出无报错,说明配置本身没问题,问题完全出在Husky钩子的工作目录上。

4. 确认Husky的hooks路径配置正确

如果你是在子目录初始化的Husky,需要在仓库根目录的package.json中明确指定Husky的钩子路径:

{
  "husky": {
    "hooksPath": "./your-subdirectory/.husky"
  }
}

同时确保你是通过以下命令安装的Husky(指定子目录):

npx husky install ./your-subdirectory/.husky

内容的提问来源于stack exchange,提问作者len4o17

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:22:44