nvm blijft knooppunt “vergeten” in nieuwe terminalsessie

$ nvm ls:

        .nvm
     v0.11.12
     v0.11.13

Ik moet in elke sessie nvm use v.0.11.13blijven raken:

        .nvm
     v0.11.12
->   v0.11.13

Ik heb zowel de brew-installatie als het officiële installatiescript geprobeerd.

Mijn .profilevoor de brouwversie:

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

En voor het 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

Enig idee van wat ik verkeerd doe?


Antwoord 1, autoriteit 100%

Probeer nvm alias default. Bijvoorbeeld:

$ nvm alias default 0.12.7

Dit stelt de standaard node-versie in je shell in. Controleer vervolgens of de wijziging aanhoudt door het shell-venster te sluiten, een nieuwe te openen en vervolgens:
node --version


Antwoord 2, autoriteit 8%

Alias ​​naar nodezelf om te voorkomen dat de standaardalias samen met node-versie-updates later wordt bijgewerkt.

nvm alias default node

Antwoord 3, autoriteit 4%

In mijn geval had een ander programma PATHwijzigingen toegevoegd aan .bashrc

Als het andere programma het PATHnanvm’s initialisatie zou wijzigen, dan zouden de PATHwijzigingen van nvm vergeten worden en zouden we het systeemknooppunt krijgen op ons PATH(of geen node).

De oplossing was om de nvm-setup te verplaatsen naar de onderkantvan .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"

Oplossing:

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

(Dit was met bash 4.2.46 op CentOS. Het lijkt mij een bug in bash, maar ik kan me vergissen.)


Antwoord 4, autoriteit 3%

Om de nieuwste stabiele versie te installeren:

nvm install stable

Standaard instellen op de stabiele versie (in plaats van een specifieke versie):

nvm alias default stable

Geïnstalleerde versies weergeven:

nvm list

Vanaf v6.2.0ziet het er ongeveer zo uit:

$ 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)

Antwoord 5, autoriteit 2%

nvm doet zijn werk door de PATH-variabele te wijzigen, dus je moet ervoor zorgen dat je je PATH niet op de een of andere manier in iets anders verandert nadat je het nvm.sh-script hebt gevonden.

In mijn geval werd nvm.sh aangeroepen in .bashrc, maar toen werd de PATH-variabele bijgewerkt in .bash_profile, waardoor mijn sessie het systeemknooppunt vóór het nvm-knooppunt vond.


Antwoord 6

De best beoordeelde oplossingen leken niet te werken voor mij. Mijn oplossing staat hieronder:

  1. Verwijder nvm volledig met homebrew:brew uninstall nvm
  2. Herinstalleer brew install nvm
  3. Volg in Terminal de stappen
    hieronder (deze worden ook vermeld bij het installeren van nvm via homebrew):

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

De hierboven beschreven stappen zullen NVM’s werkdirectory toevoegen aan uw $HOME-pad, nvm-exec kopiëren naar NVM’s werkdirectory en toevoegen aan $HOME/.bashrc, $HOME/.zshrc of het equivalente configuratiebestand van uw shell. (opnieuw) overgenomen van wat wordt vermeld op een NVM-installatie met homebrew)


Antwoord 7

Hier is een eenvoudige instructie:

1) Installeren:

nvm install 8.10.0

2) Eén keer per terminal gebruiken

nvm use 8.10.0

3) Standaard instellen voor alle terminals

nvm alias default 8.10.0

Mogelijk moet u root-rechten gebruiken om deze acties uit te voeren.

En vergeet niet de nvm-documentatiete raadplegen voor meer informatie.

Houd er ook rekening mee dat u mogelijk de node-versie voor uw IDE moet specificeren:
voer hier de afbeeldingsbeschrijving in


Antwoord 8

Als je alles hebt geprobeerd en nog steeds geen geluk hebt, kun je dit proberen :_

1 -> NVM verwijderen

rm -rf ~/.nvm

2 -> Verwijder npm-afhankelijkheden door dit

te volgen

3 -> NVM installeren

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

4 -> Stel ~/.bash_profileconfiguratie in

Voer sudo nano ~/.bash_profile

uit

Kopieer en plak hierna

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 + Xsla de wijzigingen op

6 -> Voer . ~/.bash_profile

7 -> Nu zou u nvm useop uw computer moeten hebben geïnstalleerd, om node te installeren voer nvm install v7.8.0uit. Dit is de standaard node-versie of u kunt elke versie van node installeren


Antwoord 9

Deze vraag is genoemd voor OSX, maar het overkwam mij in mijn Linux-besturingssysteem.
Ik heb geprobeerd nvm alias default <version>te gebruiken, maar voor elke nieuwe terminalsessie werd de gebruikte node-versie vergeten.
dus hier is de oplossing die ik heb bedacht.

zorg ervoor dat u een standaardalias instelt voor de knooppuntversie, plaats de volgende code in .bashrc en 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

beschrijvende oplossingslink


Antwoord 10

Ik gebruik ZSH, dus ik moest ~/.zshrcaanpassen met de regels over NVM in die volgorde:

[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
source ~/.nvm/nvm.sh

Antwoord 11

Als u bijvoorbeeld nvm install 10.14installeert, zal nvm usedie versie gebruiken voor de huidige shell-sessie, maar het zal nietaltijd instellen als de standaard voor toekomstige sessies zoals u zou verwachten. De knooppuntversie die u in een nieuwe shell-sessie krijgt, wordt bepaald door nvm alias default. Verwarrend genoeg zal nvm installalleen de standaardalias instellen als deze nog niet is ingesteld. Ga als volgt te werk om het verwachte gedrag te krijgen:

nvm alias default ''; nvm install 10.14

Dit zorgt ervoor dat die versie wordt gedownload, gebruikt voor de huidige sessie enstelt deze in als standaard voor toekomstige sessies.


Antwoord 12

voer dit uit nadat u een versie heeft geïnstalleerd,

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

Dit commando kopieert welke versie van node dan ook die je actief hebt via nvm naar de /usr/local/ directory en stelt de rechten in zodat alle gebruikers er toegang toe hebben.


Antwoord 13

Ik heb hier een nieuwe manier gevonden. Het gebruik van nInteractief beheer van uw Node.js helpt.


Antwoord 14

Als je ook SDKMAN hebt…

Op de een of andere manier was SDKMAN in conflict met mijn NVM. Als je hiermee klaar bent en er nog steeds niet achter komt, heb ik het gewoon opgelost door de “THIS MUST BE AT THE END OF THE FILE…” van SDKMAN te negeren en de NVM-regels erachter te plaatsen.

#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

Antwoord 15

Ik had hetzelfde probleem bij het gebruik van de geïntegreerde terminal in de VS Code-editor. Het herstarten van VS-code na het wijzigen van de knooppuntversie met nvm loste het probleem voor mij op.


Antwoord 16

Om de een of andere reden vond ik dit in mijn .bashrc-bestand:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" --no-use  # This loads nvm

en moest de vlag –no-useverwijderen, waarvan ik me niet kan herinneren dat ik die daar op de eerste plaats heb gezet…
Nog iets om te controleren.


Antwoord 17

$ nvm alias default {NODE_VERSION}

wanneer we het bovenstaande commando gebruiken, werk dan alleen de node-versie bij, maar de npmgebruikt nog steeds de oude versie.

Hier is een andere oplossing voor het updaten van zowel nodeals npm, in mijn geval wil ik node 8.9.4gebruiken en ik heb gebruikte het onderstaande commando.

$ nvm use default 8.9.4

En het commando retourneert de uitvoer.

Gebruik nu node v8.9.4 (npm v5.6.0)


Antwoord 18

Zoals vermeld in de sectie over problemen van de repository, is nvm useslechts voor een levensduur van de shell. Ik vond dit erg handig, maar soms kan het je in de problemen brengen als je aan verschillende codebases werkt die verschillende versies van code nodig hebben.
Dit is de linkvoor de gerelateerde discussie in GitHub


Antwoord 19

Ook als u nodehad geïnstalleerd vóór nvm, controleer dan uw ~/.bash_profileom iets als :

niet te hebben

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

Als je het wel hebt, becommentarieer/verwijder het en nvmzou moeten beginnen met het afhandelen van de standaard node-versie.

Other episodes