web-dev-qa-db-fra.com

Comment mettre à jour npm vers la dernière version?

J'ai des problèmes avec npm dans une boîte Vagrant que je configure. J'ai remarqué que la version npm est quelque peu ancienne et je voulais donc vérifier le problème avec la dernière version.

D'après ce que j'ai compris, vous devriez pouvoir mettre à jour npm à l'aide de npm install -g npm, mais la commande n'a aucun effet sur le npm utilisé:

vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ Sudo npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm
vagrant@box:~$ npm -v
1.3.10

J'ai aussi essayé d'utiliser n (comme suggéré dans Comment puis-je mettre à jour mon nodeJS vers la dernière version? ) pour le mettre à jour, mais cela n'affecte ni npm ni node:

vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$
vagrant@box:~$ Sudo npm install -g n
/usr/bin/n -> /usr/lib/node_modules/n/bin/n
[email protected] /usr/lib/node_modules/n
vagrant@box:~$ Sudo n stable

     install : v0.10.33
       mkdir : /usr/local/n/versions/0.10.33
       fetch : http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz
   installed : v0.10.33

vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$ npm -v
1.3.10

Que dois-je faire pour mettre à jour npm avec la dernière version?

122
Der Hochstapler

Je ne comprends toujours pas pourquoi , mais je dois exécuter npm install -g npmdeux fois pour avoir l'effet souhaité:

vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ Sudo npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm
vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ Sudo npm install -g npm
/usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/lib/node_modules/npm
vagrant@box:~$ npm -v
2.1.12
137
Der Hochstapler

Lors de la première utilisation de npm install -g npm, le shell (Bash) recherchera npmdans votre chemin, trouvera /usr/bin/npm installé par le package système, puis l’utilisera pour installer la nouvelle version de npmname__. La nouvelle version sera installée dans /usr/local/bin/npm.

Maintenant, votre chemin devrait avoir /usr/local/bin/ BEFORE /usr/bin/, de sorte que vous pensiez qu'il prendrait maintenant la version mise à jour dans /usr/local/bin/, n'est-ce pas? Faux.

Bash utilisera les chemins CACHE exécutables après la première recherche, donc lorsque vous dites npmla deuxième fois, il utilise toujours la version en cache qu'il a trouvée pour la première fois sous le nom /usr/bin/npm.

Pour demander à Bash d'effacer ce cache et de parcourir à nouveau le chemin, vous devez créer un hash -r.

Après avoir installé npmname__, mon shell a tout à fait bien compris la nouvelle version de npmname__.

Merci

43
Asfand Qazi

Vous pouvez mettre à jour nodejs en utilisant npm lui-même, un PPA ou manuellement.

npm :

Vérifiez la version actuelle que vous avez:

node -v

Ce qui suit efface votre cache.

Sudo npm cache clean -f

Installez n

Sudo npm install -g n

Vous pouvez lui dire d'installer une version spécifique comme ceci:

Sudo n 0.8.11

Ou simplement lui dire d'installer la dernière version stable. Les deux peuvent prendre un certain temps.

Sudo n stable

Pour voir si elle s'est réellement mise à niveau, exécutez:

node -v

PPA:

Une autre option consiste à l'installer via un PPA par chris-lea ;

Sudo add-apt-repository ppa:chris-lea/node.js  
Sudo apt-get update  
Sudo apt-get install nodejs

Ce PPA prend en charge les distributions suivantes: Utopic (14.10), Trusty (14.04), Saucy (13.10), Raring (13.04), Quantal (12.10), Precise (12.04), Oneiric (11.10), Natty (11.04), Lucid (10.04). ).

manuellement :

Vous pouvez toujours le mettre à jour manuellement en téléchargeant la dernière version et en l'installant vous-même!


Référence :

38
blade19899

Mettre à jour NPM à la dernière version en une seule commande

Pour mettre à niveau ou mettre à jour la version de votre npm, tapez simplement dans le terminal:

Sudo npm install npm@latest -g

Comme mentionné dans le pied de page du documentation du NPM

La plupart du temps, je suis incapable de le mettre à niveau avec la commande globale. Ce qui a fonctionné pour moi, cependant, est la mise à niveau du paquet à partir de la source de tous les modules de nœuds de systèmes:

Découvrez où npm est installé et allez dans ce dossier

# Below command shows the destination (remove sed pipe to see the full path of npm-cli)
whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{19\}$//'

# Go in there and install it manually. In my case it was the folder below... 
# NOTE: on mac its in /usr/local/lib
cd /usr/lib
Sudo npm install npm@latest

Voyez le puissant one-line pour tout le monde (surtout les paresseux)

cd `whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{18\}$//'`; cd ..; Sudo npm install npm@latest
12
Tom Siwik

Pour mettre à niveau npmvous devez mettre à jour nodejsavec la dernière version qui inclut npmname__

Dans Debian Stretch et Jessie, utilisez ce script:

#install prerequisites
apt-get install apt-transport-https curl git lsb-release -y

#Install NodeJS from external repositories
DISTRO=$(lsb_release -c -s)
if [ "$DISTRO" == "stretch" ]
then
  DISTRO="jessie"
fi

if curl -f "https://deb.nodesource.com/node_7.x/dists/$DISTRO/Release" >/dev/null
then
  curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
  echo "deb https://deb.nodesource.com/node_7.x $DISTRO main" > /etc/apt/sources.list.d/nodesource.list
  echo "deb-src https://deb.nodesource.com/node_7.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list
  apt-get update
  # comment out the following line, if you installed nodejs 7 already (check with `apt-cache policy nodejs`)
  apt-get remove nodejs nodejs-legacy npm
  apt-get install nodejs -y
else
  echo -e "Your distribution is not supported by NodeJS. \nYou have to install a recent NodeJS version (>=4) manually. "
fi

Dans Ubuntu, vous pouvez utiliser ce script à partir de https://deb.nodesource.com :

curl -sL https://deb.nodesource.com/setup_7.x | Sudo -E bash -
Sudo apt-get install -y nodejs

voyez d'abord la source sur https://github.com/nodesource/distributions/blob/master/deb/setup_7.x

1
rubo77

N'importe quel truc que vous fassiez, n'utilisez pas Git, je vous recommande de les exécuter dans le Composer terminal. Cela fonctionnera sûrement. C'est ce que j'ai fait pour npm install npm -g.

1
Gildas Niyigena

Je faisais face au problème. Ma version actuelle de npm était 3.3.12 mais j'ai essayé Sudo npm install npm -g, Sudo npm update npm -g .. rien ne fonctionnait .. alors que je npm --version je reçois toujours 3.3.12. J'ai cherché des répertoires dans mon Ubuntu 15.04 et trouvé deux versions de npm dans des répertoires différents.

  • v3.3.12 dans /usr/local/lib/node_modules/npm
  • v3.6 dans /usr/lib/node_modules/npm

J'ai donc fait une copie de 3.3.12 avec mv npm npm_3312 alors que j'étais dans l'ancien répertoire npm. Puis j'ai fait Sudo cp -r npm /usr/local/lib/node_modules/ alors que j'étais dans le répertoire '/ usr/lib/node_modules' .. J'ai créé mon npm --version et j'ai eu 3.6.0

:RÉ

0
Ariful Haque

Je ne vois aucune raison de réinstaller quelque chose de prêt ici, utilisez simplement pdate -g intégré dans le gestionnaire de paquets pour se mettre à jour lui-même:

$ npm -v
2.15.1
$ Sudo npm update -g npm
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm
$ npm -v
3.10.9

Assurez-vous que l'indicateur global - g est avant les packages. Dans le passé, j'ai eu du mal à ne pas enregistrer le drapeau après la liste de paquets.

0
SmujMaiku

mise à niveau vers nodejs v0.12.7

 # Note the new setup script name for Node.js v0.12
 curl -sL https://deb.nodesource.com/setup_0.12 | Sudo bash -

 # Then install with:
 Sudo apt-get install -y nodejs

Source de nodesource.com

0
Rémi B.