Comment puis-je changer la version de npm en utilisant nvm?

241

J'ai utilisé NVM pour installer les dernières versions de nodeJS pour mon travail de nœud. Cela fonctionne parfaitement pour installer des versions séparées et basculer entre elles. Il installe également la dernière version de NPM dans chaque dossier local ... / bin avec le nœud binaire. Cependant, il ne semble pas y avoir de moyen de changer la version de NPM que j'utilise (ou du moins je ne peux pas le comprendre).

La seule solution à laquelle je peux penser est de supprimer le binaire auquel il est par défaut (qui est le NPM qui a été installé lors de la première installation du nœud avec NVM), et à sa place pour mettre le dernier binaire NPM. Cependant, je me demande s'il existe de meilleures façons de procéder.

thisissami
la source
1
Pourquoi voulez-vous changer la version de NPM, ce n'est pas comme si vous installiez un paquet qui ne fonctionne qu'avec une ancienne version de NPM. Et après le nœud 0.6, le nœud est livré avec le dernier NPM. Donc, changer la version du nœud changera également la version de npm.
Farid Nouri Neshat
1
sauf qu'il ne le fait pas via NVM. oui - le nœud est livré avec NPM, mais cela signifie simplement qu'il installe un binaire à côté de lui. je peux voir les deux binaires dans leurs dossiers respectifs, mais lorsque je lance "nvm use v0.6.13", le binaire npm utilisé reste celui qui a été installé avec l'ancienne version de node, au lieu de celui installé avec la version la plus récente.
thisissami
1
Voici le code pour npm: github.com/creationix/nvm/blob/master/nvm.sh#L135-148 , qui n'est pas nécessaire depuis la version 0.6, alors vous devriez peut-être essayer de supprimer cette partie. Cela devrait aider. Vous pouvez également créer un problème sur github.
Farid Nouri Neshat
Je travaille sur ce problème en ce moment, toute aide appréciée - stackoverflow.com/questions/50976138/…
Alexander Mills

Réponses:

330

EDIT: plusieurs années depuis la première réponse à cette question, comme indiqué dans une réponse plus récente , il existe maintenant une commande pour cela:

nvm a maintenant une commande pour mettre à jour npm. C'est nvm install-latest-npmou nvm install --latest-npm.

nvm install-latest-npm: Tentative de mise à niveau vers la dernière version de travail npmsur la version actuelle du nœud

nvm install --latest-npm: Après l'installation, essayez de mettre à niveau vers le dernier npm de travail sur la version de nœud donnée

Vous trouverez ci-dessous les révisions précédentes de la bonne réponse à cette question.

Plus de trois ans après la première question posée, il semble que la réponse soit beaucoup plus simple maintenant. Il suffit de mettre à jour la version installée par nvm, qui existe ~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

Je viens d'installer le noeud 4.2.2, qui vient avec npm 2.14.7, mais je veux utiliser npm 3. J'ai donc fait:

cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm

Facile!

Et oui, cela devrait fonctionner pour n'importe quel module, pas seulement npm, que vous voulez être "global" pour une version spécifique de node.


EDIT 1: Dans la dernière version, npm -gest intelligent et installe des modules dans le chemin ci-dessus au lieu du chemin global du système.


Merci @philraj de l'avoir signalé dans un commentaire.

Lawrence
la source
13
et pour ceux qui ne savent pas où se trouve leur NVM, comme moi, lancez a which npm.
Larry
16
Et si vous voulez une version de npm autre que la dernière, lancez npm install [email protected]pour obtenir cette version spécifique, par exemple[email protected]
Michael
2
Quelque chose de similaire fonctionne aussi pour nvm-windows , par exemple cd ~/AppData/Roaming/nvm/v5.10.1.
absynce
2
Pour toute personne utilisant nvm pour Windows, la même chose peut être effectuée comme ci-dessus (en exécutant npm install npm), mais dans les emplacements d'installation du nœud pour Windows. Dans Windows 10, il s'agit de ~ / AppData / Roaming / nvm / [votre-version]. ie Utilisateurs \ myusername \ AppData \ Roaming \ nvm \ v9.7.1
Sean Holmesby
3
Encore plus facile: nvm install-latest-npmcomme répondu ci-dessous par samlandfried - stackoverflow.com/a/47519162/5991278
philraj
43

nvm ne gère pas npm.

Donc, si vous souhaitez installer le nœud 0.4.x (dont de nombreux packages dépendent encore) et utiliser NPM, vous pouvez toujours utiliser npm 1.0.x.

Installez le nœud 0.6.x (fourni avec npm 1.1.x) et installez nvm avec npm:

npm install nvm
. ~/nvm/nvm.sh

Installez le nœud 0.4.x avec nvm:

nvm install v0.4.12
nvm use v0.4.12

Installez npm en utilisant install.sh (notez le -Lparam pour suivre toutes les redirections):

curl -L https://npmjs.org/install.sh | sh

Cela détectera le nœud 0.4.12 et installera npm 1.0.106 dans votre dossier ~ / nvm / v0.4.12 / lib / node_modules et créera un lien symbolique pour nvm

~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js

Si vous essayez d'exécuter npm, cela donnera toujours une erreur mais si vous nvm use v0.4.12recommencez, cela devrait maintenant fonctionner.

fijiaaron
la source
3
Merci! Une note que l'url a changé en: curl https://npmjs.org/install.sh | sh
tristen
7
Est-ce une réponse vraiment ancienne maintenant? Mon npm est téléchargé automatiquement par nvm en tant que dépendance de la version du nœud que j'utilise.
Damon Smith
2
Ouais. C'est vieux. Si vous utilisez toujours le nœud 0.4 et un ancien nvm, vous pouvez voir ce problème.
fijiaaron
1
L'URL a été à nouveau modifiée pour forcer www. Utilisez curl -Lpour suivre la redirection.
Neal Ehardt
32

nvm a maintenant une commande pour mettre à jour npm. C'est nvm install-latest-npmou npm install --latest-npm.

samlandfried
la source
3
Avez-vous un lien vers la documentation pour cela?
allicarn
1
De la nvm helpsortie de la console: --latest-npm After installing, attempt to upgrade to the latest working npm on the given node versionje n'ai pas trouvé de référence à cela dans les nvmdocuments. Veuillez partager si vous le trouvez.
samlandfried
Je vous remercie! Cela devrait vraiment être marqué comme la bonne réponse.
philraj
son uniquement disponible sur 32 bits
Negin Basiri
30
npm install npm@x.x.x -g
npm install npm@5.4.0 -g
Ocko
la source
2
Bien que la question porte sur NVM, je suis venu ici pour cela, merci. Upvoting.
Atrahasis
27

Je suis sous Windows et je n'ai pu faire fonctionner aucun de ces trucs. Je continuais à recevoir des erreurs sur les fichiers en cours de route. Cela a fonctionné cependant:

cd %APPDATA%\nvm\v8.10.0           # or whatever version you're using
mv npm npm-old
mv npm.cmd npm-old.cmd
cd node_modules\
mv npm npm-old
cd npm-old\bin
node npm-cli.js i -g npm@latest

cd %APPDATA%\nvm\v8.10.0 # or whatever version you're using
rm npm-old
rm npm-old.cmd
cd node_modules\
rm -rf npm-old

Et boum, je suis de retour aux affaires.

Ryan Shillington
la source
3
Merci, cela a également fonctionné pour moi, sous Windows. (avait le même problème de conflits de fichiers)
Venryx
1
A travaillé pour moi thx. J'utilise nvm sur Windows pour gérer le nœud et je voulais élever nvm après le passage à la version du nœud. J'ai dû exécuter la console avec des autorisations élevées. Mon dossier nodejs de chemin est "C: \ Program Files \ nodejs" qui est un alias pour un autre emplacement sur ma machine que nvm utilise pour mettre en cache les téléchargements (pas APPDATA), je suppose que j'ai choisi un emplacement différent lors de l'installation de nvm.
Moika tourne
2
Merci, ils ont probablement besoin de corriger la façon dont la mise à jour de npm sur chaque ancienne version de nodejs sur les fenêtres nvm.
rbinsztock
1
Cela m'a aidé à mettre à jour npm fourni avec Node 10.x. Je vous remercie!
andypotato
2
A travaillé sur les fenêtres avec nodejs v10.15.3, a dû changer mvpour renet rmvers delet rmdirpour moi.
deerchao
17

La modification des versions de npm sur les systèmes d'exploitation Linux n'est pas encore un processus de commande simple. J'ai fait ce qui suit pour revenir à l'ancienne version de npm. Cela devrait fonctionner pour que n'importe quelle version de npm fonctionne. Installez d'abord la version de npm que vous souhaitez utiliser:

sudo npm install -g npm@X.X.X

Supprimez le lien sym dans / usr / local / bin /

sudo rm /usr/local/bin/npm

Recréez le lien sym en utilisant la version souhaitée de npm que vous avez installée

sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm
Arun Reddy
la source
1
j'ai suivi ces instructions en essayant de passer de 2.14.7 à 2.15.9, et maintenant quand je tape npm -v, j'obtiens 3.8.6. Bon sang.
Kyle Baker
3
Après avoir essayé plusieurs choses, pour moi, le simple fait d'utiliser sudo npm install -g [email protected]cette version me permet de répondre npm -v. Cela a au moins fonctionné passant de 4.x à 2.15.9, de toute façon.
Kyle Baker
1
Dans mon cas, sudo npm install -g [email protected]seulement installé 4.6.1 mais npm 5.1.0 était toujours utilisé. Votre conseil m'aide à passer à 4.6.1.
Hung Tran
8

En consultant www.npmjs.com/install.sh, j'ai découvert qu'il existe un moyen d'installer une version spécifique en définissant une variable d'environnement

export npm_install="2.14.14"

Ensuite, exécutez le script de téléchargement comme décrit sur npmjs.com :

curl -L https://www.npmjs.com/install.sh | sh

Si vous omettez de définir la variable npm_install , il installera la version qu'ils ont marquée comme la plus récente

Jim
la source
2
J'ai dû utiliser curl -L https://www.npmjs.com/install.sh | sudo sh, aaaa et cette méthode n'a pas fonctionné, me donnant la dernière version même si j'avais exporté ladite variable d'environnement. Bon sang. Je voulais la version 2.15.9 de 2.14.7, la réponse ci-dessous m'a mis à 3.8.6, et maintenant cette réponse me met à 4.0.2. WTF.
Kyle Baker
6

Dans Windows, exécutez votre terminal en tant qu'administrateur (au cas où il y aurait des problèmes d'autorisation comme je l'avais). Utilisez ensuite une version de nœud spécifique (disons 7.8.0) en

nvm use 7.8.0

puis mettez à jour votre npm vers la version spécifique souhaitée en

npm install -g npm@5.0.3
adnan2nd
la source
2

Et alors npm i -g npm? Avez-vous essayé d'exécuter cela également?

Dimitri Reifschneider
la source
C'est toujours le plus rapide et le plus simple que j'utilise normalement.
CTS_AE
2

Légère variation sur les instructions ci-dessus, a fonctionné pour moi. (MacOS Sierra 10.12.6)

npm install -g npm@3.10.10
rm /usr/local/bin/npm
ln -s ~/.npm-packages/bin/npm /usr/local/bin/npm
npm --version
Nick Grealy
la source
2
  1. recherchez la version du nœud et du npm que vous souhaitez utiliser à partir d'ici https://nodejs.org/en/download/releases/
  2. nvm use 8.11.4
  3. vous avez déjà obtenu le npm 5.6 avec le noeud 8.11.4 (solide et bon)

Allez avec nvm use node_version

Alvin Smith
la source
0

J'ai eu le même problème après l'installation nvm-windowssur l' installation existante de Node. La solution consistait simplement à suivre les instructions:

Vous devez également supprimer l'emplacement d'installation npm existant (par exemple, "C: \ Users \ AppData \ Roaming \ npm") afin que l'emplacement d'installation nvm soit correctement utilisé à la place.

Installation et mises à niveau

MyTitle
la source
0

Installation et utilisation de NVM sous Windows

Voici les étapes de l'installation de NVM sous Windows:

NVM signifie gestionnaire de version de nœud, ce qui aidera à changer les versions de vos nœuds pour une utilisation spécifique. Il permet également à l'utilisateur de travailler avec plusieurs versions de npm et de nœud.

Installez la configuration nvm. Utilisez la commande "nvm list" pour vérifier la liste des versions de noeud installées. Tapez "nvm use version number [6.9.3]" pour changer de version. Pour en savoir plus

Shrinivas Kalangutkar
la source