Как запустить nvm в ой мой zsh?

В системе есть nodejs, установленный через nvm. Команда не запущена npm. Консоль Oh my zsh


person Rtx    schedule 30.10.2017    source источник
comment
используйте плагины oh-my-zsh zsh-nvm   -  person Yossarian42    schedule 31.03.2020


Ответы (9)


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

 export NVM_DIR=~/.nvm
 [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

Дополнительно:

Для более быстрой инициализации оболочки я использую lazynvm, который загружает узел только при необходимости.

lazynvm() {
  unset -f nvm node npm
  export NVM_DIR=~/.nvm
  [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
}

nvm() {
  lazynvm 
  nvm $@
}

node() {
  lazynvm
  node $@
}

npm() {
  lazynvm
  npm $@
}

Ссылка: Ленивая загрузка nvm для более быстрого запуска оболочки

person Ryan Wu    schedule 30.10.2017
comment
Если кто-то использует Vim для разработки, отложенная загрузка приведет к сбою автозаполнения с использованием tsserver, потому что tsserver не будет найден в PATH. Лучше всего использовать нетерпеливую загрузку ИМХО. - person geoyws; 27.10.2019
comment
Если я добавлю это в ~ / .zshrc, я получу команду, которая не найдена при запуске nvm? Как мне это использовать? - person Petrus Theron; 21.10.2020
comment
убедитесь, что ваш .zshrc загружен: вы можете ввести lazy и нажать Tab, чтобы увидеть, показывает ли вам автозаполнение ZSH lazynvm. в противном случае проверьте конфигурацию оболочки или ZSH, чтобы убедиться, что она загружает .zshrc - person Ryan Wu; 23.10.2020

Переход с Bash на Oh-My-Zsh

Если у вас уже установлен nvm и вы переключаетесь с bash на oh-my-zsh, вы можете просто открыть свой .zshrc файл и добавить nvm плагин, входящий в состав oh-my-zsh:

  1. Откройте файл конфигурации zsh.zshrc в nano с помощью этой команды: nano ~/.zshrc
  2. Прокрутите вниз до места, где отображается plugins=(git), и добавьте nvm в круглые скобки, чтобы он отображался как plugins=(git nvm) (отдельные плагины с пробелами)
  3. Нажмите control + O (в macOS), затем enter, чтобы сохранить, затем нажмите control + X для выхода.
  4. Затем откройте новое окно / вкладку терминала и введите nvm ls, чтобы убедиться, что он работает. Обратите внимание, что вы должны открыть новое окно / вкладку для своей оболочки, чтобы использовать недавно обновленную конфигурацию .zshrc (или введите source ~/.zshrc и т. Д.)

Источник: https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/nvm

person Spencer    schedule 23.06.2019
comment
Спасибо за подробный ответ. Я думаю, что единственный способ улучшить этот ответ: добавить заголовок (перемещен с Bash на zsh) и добавить несколько переносов строк - person duichwer; 29.08.2019
comment
Спасибо за предложения @duichwer. Я только что внес эти правки. - person Spencer; 30.08.2019
comment
Это правильный и правильный ответ, пожалуйста, игнорируйте другие, лол. - person geoyws; 27.10.2019

У меня это сработало на Ubuntu 20.04.

Установите или обновите nvm

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

Добавьте в свой ~ / .zshrc

echo 'export NVM_DIR=~/.nvm' >> ~/.zshrc
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> ~/.zshrc

Загрузить в текущем окружении оболочки

source ~/.zshrc

Проверить версию nvm

nvm -v
person kurnia m    schedule 18.12.2020

Намного более простым решением является использование подключаемого модуля nvm, который поставляется по умолчанию. :

Он также автоматически создает источники nvm, поэтому вам не нужно делать это вручную в вашем .zshrc.

  1. git clone https://github.com/nvm-sh/nvm.git ~/.nvm
  2. cd ~/.nvm && git checkout v0.35.1 (текущий последний выпуск)
  3. Добавьте nvm в свой ~/.zshrc. Пример: plugins=(... nvm)
person rynop    schedule 16.12.2019
comment
Это мне действительно помогло. Спасибо. - person Yunus Emre; 06.01.2021

Я обнаружил, что есть плагин nvm с oh-my-zsh (он отличается от плагина lukechilds). После недолгой проверки я думаю, что он добавляет необходимые изменения в .zshrc при загрузке, поэтому простое добавление nvm в список плагинов в .zshrc также должно работать (и это работает для меня).

Я не нашел более подробной информации об этом плагине nvm по умолчанию через Google, поэтому я не знаю, подходит ли это решение.

person Xaser    schedule 05.08.2018
comment
На момент написания этой статьи добавление nvm в качестве плагина не работало для меня на Mac (хотя ОС не должна быть фактором). Я все еще получаю zsh: command not found: nvm. Попробую добавить вручную. - person Mike S.; 20.06.2020
comment
У меня такая же проблема. Могу я узнать, что вы имеете в виду под adding manually? - person yoges nsamy; 19.06.2021

используйте homebrew для установки nvm

  1. brew install nvm

  2. отредактируйте конфигурацию вашей системы

    vim ~/.zshrc     # or  vim ~/.bashrc
    export NVM_DIR=~/.nvm

esc ›: wq
сохранить файл

  1. перезагрузить конфигурацию
    source $(brew --prefix nvm)/nvm.sh

  2. просмотреть версию nvm

$ nvm --version
# 0.36.0

наслаждайся этим.

person Zgpeace    schedule 03.10.2020
comment
source $(brew --prefix nvm)/nvm.sh был для меня недостающей частью. Спасибо! - person Aurelio; 02.12.2020
comment
Спасибо, это решило мою проблему. Рад, что попробовал это перед переустановкой. - person yoges nsamy; 19.06.2021

Я настоятельно рекомендую использовать подход christophemarois к отложенной загрузке nvm (узлов, npm и глобальных пакетов), чтобы избежать медленного запуска оболочки:

# Add every binary that requires nvm, npm or node to run to an array of node globals
NODE_GLOBALS=(`find ~/.nvm/versions/node -maxdepth 3 -type l -wholename '*/bin/*' | xargs -n1 basename | sort | uniq`)
NODE_GLOBALS+=("node")
NODE_GLOBALS+=("nvm")

# Lazy-loading nvm + npm on node globals call
load_nvm () {
  export NVM_DIR=~/.nvm
  [ -s "$(brew --prefix nvm)/nvm.sh" ] && . "$(brew --prefix nvm)/nvm.sh"
}

# Making node global trigger the lazy loading
for cmd in "${NODE_GLOBALS[@]}"; do
  eval "${cmd}(){ unset -f ${NODE_GLOBALS}; load_nvm; ${cmd} \$@ }"
done
person MdE    schedule 23.05.2020

Добавьте этот код в .zshrc в свой каталог пользователя.

export NVM_DIR="$HOME/.nvm"
  [ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion

Затем запустите этот код на своем терминале:

source ~/.zshrc
person Mohammed    schedule 22.06.2021

С Linux (Ubuntu 20.04)

В вашем любимом редакторе вы редактируете ~ / .zshrc

nano or vi ~/.zshrc

В конце файла добавьте:

# NVM
export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

И тогда вы запускаете:

source ~/.zshrc
person Jatniel    schedule 23.06.2021