You need to enable JavaScript to run this app. SmartGit precommit执行失败:提示node版本不兼容问题求解
优惠活动
大模型
产品
解决方案
定价
更多

SmartGit precommit执行失败:提示node版本不兼容问题求解

问题根因

SmartGit属于桌面GUI应用,默认不会加载终端对应shell(如bash、zsh)的配置文件,因此无法读取nvm设置的当前激活Node版本路径,只会调用系统全局安装的Node版本,才会出现终端执行提交正常、SmartGit提交报错版本不匹配的情况。

解决方案

方案1:SmartGit全局配置PATH(优先级最高,一次配置所有项目通用)

  • 打开终端执行命令echo $PATH,完整复制输出的路径内容
  • 打开SmartGit的首选项配置页:
    • macOS:顶部菜单栏选择SmartGit > 设置 > 环境变量
    • Windows/Linux:顶部菜单栏选择编辑 > 首选项 > 环境变量
  • 点击「添加」按钮,新增环境变量:变量名填写PATH,变量值粘贴刚才复制的终端PATH内容
  • 保存配置后重启SmartGit即可生效

方案2:仅修改当前项目husky钩子(无需修改全局配置)

如果只需要解决当前项目的问题,可以调整项目内husky的加载逻辑:

  • 打开项目根目录下的.husky/_/husky.sh文件
  • 在文件最开头添加如下代码:
# 加载nvm的Node环境
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
  • 保存文件后无需重启SmartGit,再次提交即可正常读取nvm激活的Node版本

方案3:设置nvm默认Node版本

如果你的项目长期使用固定Node版本,可以直接将对应版本设为nvm全局默认版本:

  • 终端执行命令nvm alias default <你需要的版本号>,示例为nvm alias default v12.21.0
  • 重启设备后,系统全局调用Node时默认使用该版本,SmartGit也会自动读取到对应版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 11:36:04