561 votes

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

J'ai utilisé NVM pour installer les dernières versions de nodeJS pour mon travail sur les nœuds. Il fonctionne parfaitement pour installer des versions distinctes et passer de l'une à l'autre. Il installe également la dernière version de NPM dans chaque dossier local .../bin avec le binaire de node. Cependant, il ne semble pas y avoir de moyen de changer la version de NPM que j'utilise (ou du moins je n'arrive pas à le savoir).

La seule solution à laquelle je pense est de supprimer le binaire par défaut (qui est le NPM qui a été installé lorsque j'ai installé node pour la première fois avec NVM), et de mettre à sa place le dernier binaire NPM. Cependant, je me demande s'il existe de meilleures façons de procéder.

598voto

lawrence Points 2131

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. Il s'agit de nvm install-latest-npm o nvm install --latest-npm .

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

nvm install --latest-npm : Après l'installation, tenter de mettre à niveau vers le dernier npm fonctionnel sur la version de node donnée.

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

Plus de trois ans après que cette question a été posée pour la première fois, il semble que la réponse soit beaucoup plus simple aujourd'hui. Il suffit de mettre à jour la version que nvm a installé, qui se trouve dans ~/.nvm/versions/node/[your-version]/lib/node_modules/npm .

Je viens d'installer node 4.2.2, qui est livré avec npm 2.14.7, mais je veux utiliser npm 3. Donc je l'ai 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 rendre "global" pour une version spécifique de node.


EDIT 1 : Dans la version la plus récente, npm -g est intelligent et installe les modules dans le chemin ci-dessus au lieu du chemin global du système.


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

189voto

Ocko Points 613
npm install npm@x.x.x -g
npm install npm@5.4.0 -g

61voto

fijiaaron Points 1064

Nvm ne gère pas npm.

Ainsi, si vous souhaitez installer node 0.4.x (dont dépendent encore de nombreux paquets) et utiliser NPM, vous pouvez toujours utiliser npm 1.0.x.

Installez node 0.6.x (qui est livré avec npm 1.1.x) et installez nvm avec npm :

npm install nvm
. ~/nvm/nvm.sh

Installer le nœud 0.4.x avec nvm :

nvm install v0.4.12
nvm use v0.4.12

Installez npm à l'aide de install.sh (notez l'option -L param pour suivre les éventuelles redirections) :

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

Cela va détecter node 0.4.12 et installer npm 1.0.106 dans votre dossier ~/nvm/v0.4.12/lib/node_modules et créer 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, il donnera toujours une erreur mais si vous faites nvm use v0.4.12 à nouveau, cela devrait maintenant fonctionner.

50voto

Ryan Shillington Points 558

Je suis sous Windows et je n'ai pas réussi à faire fonctionner tout ça. Je n'ai pas arrêté de recevoir des erreurs parce que des fichiers étaient dans le chemin. Mais ceci a fonctionné :

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 boom, je suis de retour dans les affaires.

49voto

samlandfried Points 173

Nvm a maintenant une commande pour mettre à jour npm. Il s'agit de nvm install-latest-npm o npm install --latest-npm .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X