После использования нового сеанса терминала в OS X nvm
забывает версию node и по умолчанию ничего:
$ nvm ls
:
.nvm
v0.11.12
v0.11.13
Мне нужно продолжать бить nvm use v.0.11.13
в каждом сеансе:
.nvm
v0.11.12
-> v0.11.13
Я пробовал установку brew
, а также официальную установку script.
Мой .profile
для версии brew:
#nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
И для install.sh script:
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash
#nvm
export NVM_DIR="/Users/farhad/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
Любой ключ к тому, что я делаю неправильно?
Ответ 1
Попробуйте nvm alias default
. Например:
$ nvm alias default 0.12.7
Это устанавливает версию node по умолчанию в вашей оболочке. Затем убедитесь, что это изменение сохраняется, закрывая окно оболочки, открывая новое, а затем:
node --version
Ответ 2
Псевдоним <node
, чтобы не обновлять псевдоним по умолчанию вместе с обновлением версии node позже.
nvm alias default node
Ответ 3
Чтобы установить последнюю стабильную версию:
nvm install stable
Чтобы установить по умолчанию стабильную версию (вместо конкретной версии):
nvm alias default stable
Чтобы просмотреть установленные версии:
nvm list
По состоянию на v6.2.0
он будет выглядеть примерно так:
$ nvm list
v4.4.2
-> v6.2.0
default -> stable (-> v6.2.0)
node -> stable (-> v6.2.0) (default)
stable -> 6.2 (-> v6.2.0) (default)
iojs -> N/A (default)
Ответ 4
nvm выполняет свою работу, изменяя переменную PATH, поэтому вам нужно убедиться, что вы не каким-то образом изменяете свою PATH на что-то еще после поиска nvm.sh script.
В моем случае nvm.sh вызывался в .bashrc, но затем переменная PATH обновлялась в .bash_profile, которая заставила мой сеанс найти систему node до nvm node.
Ответ 5
В моем случае другая программа добавила изменения PATH
в .bashrc
Если бы другая программа изменила PATH
после инициализации nvm, то изменения nvm PATH
будут забыты, и мы получим системный узел в нашем PATH
(или не узел).
Решением было перенести установку nvm в конец .bashrc
### BAD .bashrc ###
# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"
Решение:
### GOOD .bashrc ###
# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"
# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
(Это было с bash 4.2.46 на CentOS. Мне кажется, что это ошибка в bash, но я могу ошибаться.)
Ответ 6
Самые популярные решения, похоже, не работают для меня. Мое решение ниже:
- Удалить nvm полностью с помощью homebrew:
brew uninstall nvm
- Переустановите
brew install nvm
-
В терминале выполните следующие действия:
ниже (они также перечислены при установке nvm через homebrew):
mkdir ~/.nvm
cp $(brew --prefix nvm)/nvm-exec ~/.nvm/
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
Шаги, описанные выше, добавят рабочий каталог NVM к вашему пути $HOME, скопируют nvm-exec в рабочий каталог NVM и добавят в $HOME/.bashrc, $HOME/.zshrc или ваш файл конфигурации, эквивалентный оболочке (снова взяты из того, что указано на установке NVM с использованием доморощенного)
Ответ 7
Если вы все перепробовали, не повезло, вы можете попробовать это: _
1 → Удалить NVM
rm -rf ~/.nvm
2 → Удалить зависимости npm, следуя этому
3 → Установить NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
4 → Установить конфигурацию ~/.bash_profile
Запустите sudo nano ~/.bash_profile
Скопируйте и вставьте после этого
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
5 → CONTROL + X
сохранить изменения
6 → Беги . ~/.bash_profile
. ~/.bash_profile
7 → Теперь у вас должен быть установлен nvm
на вашем компьютере, для установки узла запустите nvm install v7.8.0
это будет версия узла по умолчанию или вы можете установить любую версию узла
Ответ 8
Этот вопрос упоминается для OSX, но это случилось со мной в ОС Linux.
Я попытался использовать nvm alias default <version>
, но для каждого нового сеанса терминала была забыта используемая версия node.
поэтому, вот решение, которое я понял.
обязательно установите псевдоним по умолчанию для node version, поместите следующий код в .bashrc и source .bashrc
.
export NVM_DIR="/home/bonnie/.nvm"
## If the file exists and is not empty
if [ -s "$NVM_DIR/nvm.sh" ]; then
## Source it
source "$NVM_DIR/nvm.sh"
fi
NODE_DEFAULT_VERSION=$(<"$NVM_DIR/alias/default")
export PATH="$NVM_DIR/versions/node/$NODE_DEFAULT_VERSION/bin":$PATH
описательная ссылка на решение
Ответ 9
запустите это после установки любой версии,
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
Эта команда копирует любую версию node, которую вы активировали через nvm, в каталог/usr/local/и устанавливаете разрешения, чтобы все пользователи могли получить к ним доступ.
Ответ 10
Я нашел новый способ здесь. Использование n
Интерактивное управление Node.js помогает.
Ответ 11
nvm install 10.14
nvm use
будет nvm use
эту версию для текущего сеанса оболочки, но не всегда будет устанавливать ее по умолчанию для будущих сессий, как и следовало ожидать. Версия узла, которую вы получаете в новом сеансе оболочки, определяется nvm alias default
. nvm install
, что nvm install
будет устанавливать псевдоним по умолчанию, только если он еще не установлен. Чтобы получить ожидаемое поведение, сделайте это:
nvm alias default ''; nvm install 10.14
Это обеспечит загрузку этой версии, ее использование для текущего сеанса и установку по умолчанию для будущих сеансов.
Ответ 12
Если у вас также есть SDKMAN...
Каким-то образом SDKMAN конфликтовал с моим NVM. Если вы в своем уме с этим и не можете понять, я просто исправил это, проигнорировав "ЭТО ДОЛЖНО БЫТЬ В КОНЦЕ ФАЙЛА..." из SDKMAN и поместив строки NVM после него.
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/myname/.sdkman"
[[ -s "/Users/myname/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/myname/.sdkman/bin/sdkman-init.sh"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Ответ 13
После долгого конфликта с этой проблемой, я нашел, как это исправить. Вот пошаговое решение проблемы:
-
Откройте терминал и установите инструменты разработчика командной строки:
xcode-select --install
-
Нажмите Ввод
-
Установите последнюю версию NVM:
cd ~/
-
Нажмите Ввод
git clone https://github.com/creationix/nvm.git.nvm
- Нажмите Ввод
-
Если вы уже создали папку .nvm ранее, вы увидите следующее сообщение об ошибке:
fatal: destination path '.nvm' already exists and is not an empty directory.
Иначе, вы увидите процесс клонирования, пока он не завершится.
-
Проверьте последнюю версию NVM:
cd ~/.nvm
-
Нажмите Ввод
git checkout v0.34.0
Вы получите ответ, похожий на:
HEAD is now at 3d9c31d v0.34.0
Версия может отличаться в разных системах.
ls
-
Нажмите Ввод
. nvm.sh
-
Нажмите Ввод
nvm list
-
Нажмите Ввод
Вы увидите различные версии узлов, установленные на вашем компьютере, могут быть некоторые ошибки, не обращайте на них внимания.
nvm ls-remote | tail -n9
-
Нажмите Ввод
nvm list
-
Откройте bash с помощью vim:
vim ~/.bash_profile
-
В редакторе vim нажмите: i
чтобы войти в INSERT mode
и начать новую строку. Если у вас возникли ошибки при редактировании, нажмите клавишу ESC
а затем :q!
выйти без сохранения.
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
-
Нажмите клавишу ESC
когда вы закончите редактирование файла (вы увидите, что режим INSERT исчезнет).
- Нажмите
:wq
чтобы сохранить файл. -
Нажмите Ввод
nvm ls-remote | tail -n9
-
Нажмите enter и установите новейшую версию nvm:
nvm install 12.6.0
-
Когда процесс завершится, вы увидите: Now using node v12.6.0 (npm v6.9.0)
-
Вы можете проверить успешность установки, нажав:
node -v
или npm -v
, он должен показать вам версии nvm и npm, установленные в вашей системе.
Основано на: Как установить последнюю версию Node Manager Manager NVM и установить узел и NPM в macOS Mac OS X
Ответ 14
$ nvm alias default {NODE_VERSION}
когда мы используем вышеупомянутую команду, обновите только версию узла, но npm
все еще использует старую версию.
Вот еще одно решение для обновления обоих node
и npm
, в моем случае я хочу использовать узел 8.9.4
, и я использовал приведенную ниже команду.
$ nvm use default 8.9.4
И команда возвращает результат.
Now using node v8.9.4 (npm v5.6.0)
Ответ 15
Также, если у вас есть node, установленный до nvm, проверьте ~/.bash_profile, чтобы не было что-то вроде:
export PATH=/bin:/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH
Если у вас есть это, прокомментируйте/удалите его, а nvm должен начать обработку версии node по умолчанию.