提交代码时出现Exec format error(代码126)问题求助
问题解决:husky pre-commit hook 因node二进制架构不兼容失败
问题根源
错误提示cannot execute binary file: Exec format error说明项目中target/node/node二进制文件与你的系统架构不匹配(比如ARM架构Mac使用了x86架构的node包,或反之),导致npmw无法调用node,最终husky钩子执行失败。
解决方案
方案1:清理并重新生成适配的本地node二进制
- 执行命令删除现有不兼容的node目录:
rm -rf target/node - 重新运行依赖安装命令,触发npmw下载匹配当前系统架构的node:
npm install
方案2:修改husky hook,绕开npmw调用
如果npmw的本地node管理逻辑存在问题,可直接改用项目依赖的lint-staged:
- 编辑
.husky/pre-commit文件,替换内容为:#!/bin/sh . "$(dirname "$0")/_/husky.sh" npx lint-staged - 保存后尝试提交代码,验证钩子是否正常执行。
方案3:检查npmw配置
查看项目根目录下的npmw相关配置文件(如.npmrc或自定义配置),确认没有硬编码指定特定CPU架构的node包,确保它会自动匹配当前系统下载对应版本。
内容的提问来源于stack exchange,提问作者TonyYen
相关产品推荐
相关产品推荐

