You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Git Bash执行package.json脚本时无法识别环境路径求助

解决Git Bash中yarn脚本无法识别node/yarn的问题

你碰到的这个问题其实挺常见的——单独在Git Bash里跑nodeyarn都没问题,但通过yarn的package.json脚本调用时就找不到命令,核心原因是yarn默认用Windows的cmd执行脚本,而cmd的环境变量上下文和Git Bash不完全一致,导致脚本里识别不到这些可执行文件。下面给你几个实用的解决方案:

方案1:修改yarn的脚本执行shell为Git Bash

这是最推荐的方法,直接让yarn用Git Bash来执行脚本,就能继承Git Bash的完整环境变量。在Git Bash里运行这条命令:

yarn config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"

注意把路径换成你实际的Git安装路径(比如装在D盘就改对应盘符)。设置完成后再跑yarn start,应该就能正常识别node了。

方案2:用npx帮你定位node

npx会自动查找系统里的node可执行文件,不用依赖环境变量的上下文。把package.json里的start脚本改成:

"start": "npx node scripts/start.js"

这个方法简单粗暴,不用改任何配置,换环境也能正常用。

方案3:给Git Bash手动补充环境变量

虽然你说没创建过.profile,但Git Bash启动时会读取~/.bashrc文件(如果存在)。你可以手动创建这个文件并添加node和yarn的路径:

  1. 在Git Bash里输入touch ~/.bashrc创建文件
  2. 用VS Code打开它:code ~/.bashrc
  3. 添加以下内容(替换成你自己的安装路径):
export PATH="$PATH:/c/Program Files/nodejs"
export PATH="$PATH:/c/Users/你的用户名/AppData/Roaming/npm"
  1. 保存后,在Git Bash里运行source ~/.bashrc让配置生效,再试yarn start

方案4:在脚本里写node的绝对路径

如果上面的方法都不行,可以直接在脚本里指定node的完整路径,比如:

"start": "\"C:\\Program Files\\nodejs\\node.exe\" scripts/start.js"

这个方法能快速解决当前问题,但缺点是换电脑或者换node安装路径后需要修改,灵活性差一点。

我之前处理过好几个类似的案例,方案1和方案2基本都能搞定。你可以先试试方案1,不行再换方案2,应该就能解决你的问题了。

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

火山引擎 最新活动