这真让我发疯!我做了很多谷歌搜索,并尝试了各种方法。 (我不认为这是一个超级用户主题)
我最近在终端上遇到很多麻烦。我肯定在某个地方搞砸了,因为它曾经可以正常工作,现在我再也无法像nvm
这样的global npm
或expo
软件包来识别我的命令了。它只是给我这样的错误:
▶ expo
zsh: command not found: expo
▶ nvm ls
zsh: command not found: nvm
(顺便说一句:找到npm
,brew
和j
命令commands)
如果我做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和this answer中读取好心的答案,我做了以下事情:
将我的.bash_profile
更新为
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
(这是该文件中唯一的东西)
通过.bashrc
创建了一个$touch .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
可以使用! 谢谢
答案 0 :(得分:1)
您可以尝试几种方法,首先是从~/.bash_profile
文件中获取.zshrc
。可能在此处设置了nvm
命令,而您的zsh
shell根本不知道它的存在。
注意:在OS X上,运行操作系统后,如果未找到nvm:命令, 安装脚本,可能是以下原因之一:-
您的系统可能没有
.bash_profile
文件,该命令位于 设定。只需使用touch ~/.bash_profile
创建一个,然后运行 再次安装脚本,您可能需要重新启动终端实例。 尝试在终端中打开新的标签页/窗口,然后重试。如果以上 无法解决问题,请打开您的.bash_profile
并添加
下面的代码行:
source ~/.bashrc
有关此问题和可能的解决方法的更多信息,请 请参阅here
↑因为您正在zsh
中的source ~/.bash_profile
和~/.bashrc
上使用.zshrc
。
如果您使用homebrew
进行安装,则可能需要在.zshrc
中添加以下内容:
导出/源nvm
已安装homebrew
:
# source nvm
export NVM_DIR=~/.nvm
if hash brew 2>/dev/null; then
source $(brew --prefix nvm)/nvm.sh
source `brew --prefix`/etc/profile.d/z.sh
fi
npm
未通过homebrew
安装:
export NVM_DIR="~/.nvm"
source ~/.nvm/nvm.sh
[[ -s "$NVM_DIR/nvm.sh" ]] && \. "$NVM_DIR/nvm.sh" # load nvm
[[ -s "$NVM_DIR/bash_completion" ]] && \. "$NVM_DIR/bash_completion" # load nvm bash_completion
答案 1 :(得分:0)
我没有OSX可以尝试...但是zsh
的路径可能属于其中:
/etc/paths
,/private/etc/paths
或进入/private/etc/paths.d
除此之外,npm
还有一个auto-complete plugin。