簡體   English   中英

找不到用於全局 npm 安裝的終端 (zsh) 命令

[英]Terminal (zsh) command not found for global npm installs

這讓我發瘋! 我做了很多谷歌搜索並嘗試了各種方法。 (我不認為這是一個超級用戶主題)

我最近在終端上遇到了很多麻煩。 我一定是在某個地方搞砸了,因為它曾經工作得很好,現在我無法讓它識別我的命令,無論是nvm還是像expo這樣的global npm包。 它只是給了我這樣的錯誤:

▶ expo      
zsh: command not found: expo
▶ nvm ls
zsh: command not found: nvm

(順便說一句:找到了npmbrewj命令🤔)

如果我做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添加到.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並重新啟動了我的終端。

現在nvmexpo工作了! 謝謝

您可能會嘗試一些事情,首先是從您的.zshrc文件中獲取~/.bash_profile 有可能nvm命令是在那里設置的,而您的zsh shell 根本不知道它存在。

注意:在 OS X 上,如果您在運行安裝腳本后得到 nvm: command not found ,則可能是以下原因之一:-

您的系統可能沒有設置命令的.bash_profile文件。 只需使用touch ~/.bash_profile創建一個並再次運行安裝腳本,您可能需要重新啟動終端實例。 嘗試在終端中打開一個新選項卡/窗口並重試。 如果以上沒有解決問題,請打開您的.bash_profile並添加
以下代碼行:

source ~/.bashrc

有關此問題和可能的解決方法的更多信息,請參閱此處

↑ 因為你在source ~/.bash_profile & ~/.bashrc in .zshrc中使用zsh


如果您使用homebrew進行安裝,那么您可能需要將以下內容添加到.zshrc

homebrew nvm安裝的導出/源nvm

# 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

https://github.com/nvm-sh/nvm

我沒有 OSX 可以嘗試……但是zsh的路徑可能屬於那里:

/etc/paths , /private/etc/paths或進入/private/etc/paths.d

除此之外,還有一個用於npm自動完成插件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM