Windows 10运行Husky时pre-commit钩子触发Base path empty报错
解决方案
- 调整Git默认Shell配置
Husky v4的钩子脚本依赖类Unix Shell执行,Windows下需指定Git附带的Bash作为Git的默认执行Shell,执行以下命令(路径替换为你本地Git的bash.exe实际安装路径):git config --global core.shPath "C:\Program Files\Git\bin\bash.exe"
执行完成后重启终端重试。 - 修复钩子脚本的路径解析逻辑
手动修改项目.git/hooks/目录下对应报错的钩子文件,将原有的. "$(dirname "$0")/husky.sh"行替换为以下内容,主动补全绝对路径避免dirname返回空:
如果要避免每次Husky重新生成钩子都手动修改,可以在package.json中新增配置,指定Husky使用的Shell路径:# 修复Windows下路径解析异常 hook_dir=$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd) . "${hook_dir}/husky.sh"{ "husky": { "shell": "C:\\Program Files\\Git\\bin\\bash.exe" } } - 检查项目路径与环境一致性
- 确认项目完整存储路径不含中文、特殊符号或空格,若存在可将项目迁移到纯英文无特殊字符的路径下重试
- 确认Git、Node、Husky均为同一环境的安装包,不要混用Windows本地工具和WSL/虚拟机内的工具,避免跨环境路径解析不兼容
- 临时规避方案
如果上述方案都不生效,可以在commit时添加--no-verify参数跳过钩子校验,注意该操作会绕过所有pre-commit检查,仅建议紧急场景下使用。
内容的提问来源于stack exchange,提问作者Arp
相关产品推荐
相关产品推荐

