Команда терминала (zsh) не найдена для глобальных установок npm - PullRequest
2 голосов
/ 08 июля 2019

Это сводит меня с ума! Я много гуглил и пробовал разные вещи. (Я не считаю это темой суперпользователя)

В последнее время у меня много проблем с терминалом. Должно быть, я где-то напутал, потому что раньше он работал просто отлично, и теперь я не могу заставить его больше распознавать мои команды, ни пакеты nvm или global 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

ЛЮБАЯ помощь будет ПОЛУЧЕНА!

UPDATE

Читая добрый ответ от @ l'L'l и этого ответа Я сделал следующее:

Обновлен мой .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 работает! СПАСИБО

Ответы [ 2 ]

1 голос
/ 17 июля 2019

Есть несколько вещей, которые вы могли бы попробовать, в первую очередь, вы должны получить ~/.bash_profile из вашего .zshrc файла. Возможно, там была установлена ​​команда nvm, а ваша оболочка zsh просто не знает, что она существует.

Примечание : В OS X: , если вы получили команду nvm: not found после запуска установить скрипт, одна из следующих причин может быть: -

ваша система может не иметь файла .bash_profile, где указана команда настроить. Просто создайте один с touch ~/.bash_profile и запустите Снова установите скрипт, вам может потребоваться перезапустить ваш терминал. Попробуйте открыть новую вкладку / окно в вашем терминале и повторите попытку. Если выше не решает проблему, откройте .bash_profile и добавьте
следующая строка кода:

source ~/.bashrc

Для получения дополнительной информации об этой проблеме и возможных обходных путях, пожалуйста, см. здесь

↑ Поскольку вы используете 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

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

0 голосов
/ 13 июля 2019

У меня нет OSX, чтобы попробовать ... но пути для zsh могут принадлежать туда:

/etc/paths, /private/etc/paths или /private/etc/paths.d

Кроме этого, есть плагин автозаполнения для npm.

...