这真让我头疼!我搜索了很多,尝试了各种方法。(我认为这不是超级用户的话题)
最近我的终端遇到了很多麻烦。我一定搞乱了什么,因为以前它运行得很好,现在我无法使其再次识别我的命令,无论是nvm
还是全局npm
包,比如expo
。它只给我返回这样的错误:
▶ expo
zsh: command not found: expo
▶ nvm ls
zsh: command not found: nvm
(顺便说一句:
npm
、brew
和 j
命令都能找到。)如果我执行
echo $PATH
,就会得到以下结果:/Users/norfeldt/Library/Android/sdk/tools/bin:/Users/norfeldt/Library/Android/sdk/tools:/Users/norfeldt/Library/Android/sdk/platform-tools:/Applications/anaconda/bin:~/Library/Python/2.7/bin:~/.npm-global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
(奇怪的行为是,如果我再次执行
echo $PATH
,它会在同一行返回两次相同的输出)(可读版本:用
:\n
替换:
)/Users/norfeldt/Library/Android/sdk/tools/bin:
/Users/norfeldt/Library/Android/sdk/tools:
/Users/norfeldt/Library/Android/sdk/platform-tools:
/Applications/anaconda/bin:
~/Library/Python/2.7/bin:
~/.npm-global/bin:
/usr/local/bin:
/usr/bin:
/bin:
/usr/sbin:
/sbin
我的.zshrc
文件长这样:
# Node & NPM
#PATH="/usr/local/bin:$PATH"
PATH="~/.npm-global/bin:$PATH"
#PATH="~/.npm-global/lib/node_modules:$PATH"
# Git
alias master="git checkout master"
alias dev="git checkout develop"
alias hotfix="git flow hotfix"
alias feature="git flow feature"
alias tags="git push --tags"
# Pip - https://gist.github.com/haircut/14705555d58432a5f01f9188006a04ed
PATH="~/Library/Python/2.7/bin:$PATH"
# added by Anaconda2 4.4.0 installer
PATH="/Applications/anaconda/bin:$PATH"
# Android
export ANDROID_HOME=/Users/norfeldt/Library/Android/sdk
PATH="${ANDROID_HOME}/platform-tools:$PATH"
PATH="${ANDROID_HOME}/tools:$PATH"
PATH="${ANDROID_HOME}/tools/bin:$PATH"
alias emu="pushd ${ANDROID_HOME}/tools;emulator -avd Pixel_2; popd"
# Path to your oh-my-zsh installation.
export ZSH=/Users/norfeldt/.oh-my-zsh
ZSH_THEME="avit"
# Autojump
[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh
# shell startup.
plugins=(git)
source $ZSH/oh-my-zsh.sh
# Load zsh-autosuggestions.
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
# zsh-syntax-highlighting
source /Users/norfeldt/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
export PATH
非常感谢您的帮助!
更新
根据 @l'L'l 的友好回答和 这个回答,我采取了以下措施:
更新了我的.bash_profile
文件为:
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
这是该文件中唯一的内容。
通过 $touch .bashrc
创建了一个 .bashrc
文件(可能已删除旧文件..但这只是一个空文件..)。
向 .zshrc
添加了以下行:
PATH="$PATH:$HOME/.npm-global/bin/" # Changed ~ to $HOME
PATH="$PATH:$HOME/.npm-global/lib/node_modules" # Changed ~ to $HOME
...
# Bash stuff
source ~/.bashrc
source ~/.bash_profile
执行了source ~/.zshrc
并重启了终端。
现在, nvm
和expo
可以正常工作!谢谢!
zsh
时,你遇到了什么错误? - user1934428npm
,你可以尝试运行npm config get prefix
并将bin
子目录添加到你的路径中。例如,当我运行该命令时,我会得到/usr/local
,并且which expo
会为我打印出/usr/local/bin/expo
。对于你来说,你的前缀可能在$PATH
不检查的地方。 - mrfrednpm config get prefix
,我会得到/Users/norfeldt/.npm-global
。 - Norfeldtwhich npm
,我会得到/usr/local/bin/npm
(顺便说一下,npm
是一个有效的命令)。 - Norfeldt