Node.js项目中git-submodule报‘bad variable name’错误求助
解决
git submodule summary报错:export: made.: bad variable name 问题根源
你的系统PATH中,项目node_modules/.bin的优先级高于系统默认路径,导致调用了旧版本的envsubst(0.15.0)。这个旧版本在执行envsubst --variables命令时,会额外输出No variable replacements made.字符串,而git的submodule脚本误将该字符串当作环境变量名执行export操作,引发语法错误。
解决方案
临时单次修复
执行git命令前临时调整PATH,让系统自带的envsubst优先:
PATH="/usr/bin:$PATH" git submodule summary
项目级永久修复
在项目根目录创建.env文件,添加以下内容:
export PATH="/usr/bin:$PATH"
每次进入项目时执行source .env,或使用direnv工具自动加载该配置。
全局修复(谨慎使用)
调整全局PATH配置(如~/.bashrc或~/.zshrc),将/usr/bin移到node_modules/.bin之前。此方法可能影响其他依赖node版工具的项目,需谨慎操作。
验证修复
执行以下命令确认envsubst路径已切换为系统版本:
which envsubst # 应输出 /usr/bin/envsubst envsubst --version # 应显示GNU gettext的版本(如0.21)
此时再运行git submodule summary即可正常执行。
内容的提问来源于stack exchange,提问作者TheNumberOne
相关产品推荐
相关产品推荐

