nvm utrzymuje" zapominanie " węzła w nowej sesji terminala

Po użyciu nowej sesji terminala w OS X, nvm zapomina o wersji węzła i domyślnie nic:

$ nvm ls:

         .nvm
     v0.11.12
     v0.11.13

Muszę uderzać nvm use v.0.11.13 w każdej sesji:

         .nvm
     v0.11.12
->   v0.11.13

Próbowałem zarówno instalacji brew, jak i oficjalnego skryptu instalacyjnego.

Mój .profile dla wersji browarniczej:

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

I dla install.sh scenariusz:

$ 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
Wiesz, co robię źle?
Author: bfontaine, 2014-07-05

10 answers

Spróbuj nvm alias default. Na przykład:

$ nvm alias default 0.12.7

Ustawia domyślną wersję węzła w powłoce. Następnie sprawdź, czy zmiana trwa, zamykając okno powłoki, otwierając nowe, a następnie: node --version

 946
Author: dylants,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-19 18:50:31

Alias do node, aby uniknąć aktualizacji domyślnego aliasu wraz z późniejszymi aktualizacjami wersji węzła.

nvm alias default node
 70
Author: Tarun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-06 14:58:38

Aby zainstalować najnowszą stabilną wersję:

nvm install stable

Aby ustawić domyślną wersję stabilną (zamiast konkretnej wersji):

nvm alias default stable

Aby wyświetlić listę zainstalowanych wersji:

nvm list

Od v6.2.0 będzie to wyglądało mniej więcej tak:

$ 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)
 31
Author: ohho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-01 06:37:42

Nvm robi swoje, zmieniając zmienną PATH, więc musisz się upewnić, że nie zmieniasz ścieżki na coś innego po zakupie nvm.sh scenariusz.

W moim przypadku, nvm.sh został wezwany .bashrc, ale wtedy zmienna PATH była aktualizowana .bash_profile, który spowodował, że moja sesja znalazła węzeł systemowy przed węzłem nvm.

 18
Author: Jeff Mikels,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-08 15:22:19

W moim przypadku inny program dodał PATH zmiany do .bashrc

Jeśli inny program zmienił PATH po inicjalizacji {[12] }NVM, wtedy zmiany PATH NVM zostaną zapomniane i otrzymamy węzeł systemowy na naszym PATH (lub bez węzła).

Rozwiązaniem było przeniesienie konfiguracji nvm na dół z .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"

Rozwiązanie:

### 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

(to było z bash 4.2.46 na CentOS. Wydaje mi się, że to błąd w bashu, ale mogę być błąd.)

 11
Author: joeytwiddle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-06 17:02:36

Najwyżej oceniane rozwiązania nie wydają się działać dla mnie. Moje rozwiązanie jest poniżej:

  1. Odinstaluj nvm całkowicie używając homebrew:brew uninstall nvm
  2. Reinstall brew install nvm
  3. W Terminalu, wykonaj kroki poniżej (są one również wymienione podczas instalacji nvm przez homebrew):

    mkdir ~/.nvm cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh

Opisane powyżej kroki dodają katalog roboczy NVM do ścieżki $HOME, skopiują nvm-exec do katalogu roboczego NVM i dodają do $HOME/.bashrc, $HOME/.zshrc, czyli Twoja powłoka równoważny plik konfiguracyjny.(ponownie wzięte z tego, co jest wymienione na instalacji NVM przy użyciu homebrew)

 6
Author: Joe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-01 15:53:41

To pytanie wspomniałem o OSX, ale przydarzyło mi się to w moim linux OS. Próbowałem użyć nvm alias default <version>, ale dla każdej nowej sesji terminala zapomniano o używanej wersji węzła. oto rozwiązanie, które wymyśliłem.

Upewnij się, że ustawiłeś domyślny alias dla wersji węzła , wpisz następujący kod .bashrc, oraz 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

Opisowe rozwiązanie link

 3
Author: souparno majumder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:33

Uruchom to po zainstalowaniu dowolnej wersji,

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

To polecenie kopiuje dowolną wersję węzła aktywną przez nvm do katalogu / usr / local / i ustawia uprawnienia tak, aby wszyscy użytkownicy mieli do nich dostęp.

 2
Author: Mouafa Ahmed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-12 09:50:19

Znalazłem tu nową drogę. Za Pomocą n Interaktywne Zarządzanie Węzłem.JS pomaga.

 2
Author: Harshit Garg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-23 07:51:32

Również w przypadku, gdy masz węzeł zainstalowany przed nvm Sprawdź w swoim ~/.bash_profile aby nie mieć czegoś takiego jak:

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

Jeśli go posiadasz, skomentuj/usuń go i nvm powinien zacząć obsługiwać domyślną wersję węzła.

 -1
Author: tibbus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-03 23:56:18