macOS下首次启动zsh时Yarn全局命令无法执行的问题
问题原因
首次启动终端时,nvm还未加载Node.js环境,此时执行yarn global bin会因找不到yarn命令而失败,导致Yarn全局包的路径没被正确添加到$PATH中。手动输入zsh重启终端时,nvm已完成加载,yarn可用,yarn global bin能正常返回路径,所以命令就能正常执行。
另外你的配置里重复设置了两次Yarn的PATH,完全没必要。
修复步骤
- 打开
.zshrc文件,删除开头重复的两行Yarn PATH配置:
export PATH="$PATH:$(yarn global bin)" export PATH="$PATH:`yarn global bin`"
- 在nvm加载代码的后面添加Yarn的PATH配置,同时增加判断避免报错:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion # 添加以下配置 if command -v yarn &> /dev/null; then export PATH="$PATH:$(yarn global bin)" fi
- 保存文件后,执行
source ~/.zshrc让配置生效,或直接重启终端测试。
这样修改后,终端启动时会先加载nvm和Node.js环境,确保yarn可用后再添加全局包路径,就能解决首次启动找不到命令的问题。
内容的提问来源于stack exchange,提问作者Louis Lecouturier
相关产品推荐
相关产品推荐

