nvm продолжает "забывать" узел в новой терминальной сессии


при использовании нового терминального сеанса в OS X,nvm забывает версию узла и по умолчанию ничего:

$ nvm ls:

         .nvm
     v0.11.12
     v0.11.13

я должен продолжать бить nvm use v.0.11.13 в каждой сессии:

         .nvm
     v0.11.12
->   v0.11.13

я пробовал как brew установить, а также официальный скрипт установки.

мой .profile для версии brew:

#nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

и для install.sh сценарий:

$ 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

любой ключ к тому, что я делаю неправильно?

10 422

10 ответов:

попробовать nvm alias default. Например:

$ nvm alias default 0.12.7

это устанавливает версию узла по умолчанию в вашей оболочке. Затем убедитесь, что изменение сохраняется, закрыв окно оболочки, открыв новое, а затем: node --version

псевдоним node сам, чтобы избежать обновления псевдонима по умолчанию вместе с обновлением версии узла позже.

nvm alias default node

установить последнюю стабильную версию:

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)

nvm выполняет свою работу, изменяя переменную PATH, поэтому вам нужно убедиться, что вы каким-то образом не меняете свой путь на что-то другое после поиска nvm.sh сценарий.

в моем случае, nvm.sh его вызывали на допрос .bashrc, но затем переменная PATH обновлялась .bash_profile, который вызвал мой сеанс, чтобы найти системный узел перед узлом nvm.

в моем случае, другая программа добавила 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

(это с Баша 4.2.46 на CentOS. Мне кажется, что ошибка в bash, но я могу ошибаться.)

лучшие решения, похоже, не работают для меня. Мое решение находится ниже:

  1. удалить nvm полностью с помощью homebrew:brew uninstall nvm
  2. переустановить brew install nvm
  3. в терминале выполните следующие действия ниже (они также перечислены при установке 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 с использованием homebrew)

этот вопрос упоминался для OSX, но это случилось со мной в моей ОС linux. Я пробовал использовать nvm alias default <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

описательное решение ссылка

запустить после установки любой версии,

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local

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

Я нашел здесь новый способ. Используя nИнтерактивное Управление Узлом.js помогает.

также в случае, если у вас узел установлен до nvm Регистрация ~/.файл чтобы не было чего-то вроде :

export PATH=/bin:/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH

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