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

Husky pre-commit钩子执行失败(错误码126)求助

解决Windows PowerShell下Husky pre-commit钩子执行错误(代码126)

问题原因

你用PowerShell的echo "npx lint-staged" > .husky/pre-commit生成钩子文件时,默认会创建UTF-16 LE编码的文件,而Husky无法识别这种编码的脚本,因此抛出"cannot execute binary file"错误。另外Husky v9推荐使用官方的钩子添加命令,避免手动修改文件带来的格式问题。

修复步骤

  1. 删除现有错误的pre-commit文件
Remove-Item .husky/pre-commit
  1. 使用Husky官方命令添加pre-commit钩子
npx husky add .husky/pre-commit "npx lint-staged"

这个命令会自动生成UTF-8编码的钩子脚本,同时保证文件格式符合Husky的要求。

  1. 验证钩子文件编码(可选)
    用记事本打开.husky/pre-commit,点击「文件」-「另存为」,确认编码是UTF-8(无BOM),如果不是就重新选择编码保存。

  2. 测试提交

git add .
git commit -m "test husky lint check"

额外注意事项

  • 你的lint-staged配置中,cd client && npx eslint --fix可以简化为eslint --fix(只要项目根目录已安装eslint,lint-staged会自动在对应目录执行命令),如果client目录有独立的package.json,保留原命令也没问题。
  • 确保package.json中的prepare脚本"husky"能正常执行,Husky v9会通过这个脚本自动启用钩子。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 04:42:06