108 votes

comment mettre à jour npm sur macOS

Pour des raisons qui me sont inconnues, je n'ai pas réussi à mettre à jour la dernière version de npm sur macOS (elle fonctionne bien sur Windows). Il n'y a pas d'erreur, seulement "mise à jour d'un paquet".

Utilisation de Node.js 8.11.1

node -v
v8.11.1

Quelle est la version de npm que j'ai ?

$ npm -v
5.6.0

J'ai essayé ça...

$ npm i -g npm
+ npm@5.8.0
updated 1 package in 7.37s

Et il ne parvient pas à se mettre à jour.

$ npm -v
5.6.0

Où se trouve npm ?

$ which npm
/usr/local/bin/npm

Alors j'essaie brew ...

brew install npm

Et ça échoue...

$ npm -v
5.6.0

*Et puis j'ai essayé ça... *

npm install npm@latest -g
+ npm@5.8.0
updated 1 package in 7.618s

Et ça échoue...

npm -v
5.6.0

Avec sudo :

sudo npm i -g npm
+ npm@5.8.0
updated 1 package in 7.794s

Et ça échoue...

npm -v
5.6.0

Cela échoue également...

sudo npm install npm@latest -g

J'ai suivi le les instructions trouvées sur ce Q&A J'ai supprimé complètement npm et node de mon système et je les ai réinstallés depuis le début, et la mise à jour échoue également.


Capture d'écran, par demande :

enter image description here


Fermez le terminal, puis rouvrez le terminal et exécutez :

$ npm -v
5.6.0

sudo deux fois :

$ sudo npm i -g npm
+ npm@5.8.0
updated 1 package in 7.478s
$ sudo npm i -g npm
+ npm@5.8.0
updated 1 package in 7.434s

Échecs également :

$ npm -v 
5.6.0

Qu'est-ce que j'ai manqué ? Qu'est-ce qui se passe ici ?

0 votes

Avez-vous essayé sudo npm i -g npm ?

0 votes

@Squish oui, c'est la première chose que j'ai essayé, mais je vais le préciser.

0 votes

Essayez d'utiliser sudo dans ce cas. "sudo npm i -g npm" sans les parenthèses

153voto

marlo Points 1584

Cela fonctionne sur mon mac.

Basé sur les docs https://docs.npmjs.com/troubleshooting/try-the-latest-stable-version-of-npm :

npm install -g npm@latest

Il y a une note dans la documentation qui indique que, selon votre méthode d'installation, vous pouvez ajouter un peu de sudo .

Mise à niveau sur *nix (OSX, Linux, etc.)

(Il se peut que vous deviez préfixer ces commandes par sudo, notamment sous Linux, ou OS X si vous avez installé Node en utilisant son installateur par défaut).

1 votes

Pour les curieux, -g est le drapeau d'installation globale, comme expliqué ici : stackoverflow.com/questions/8909986/

10 votes

sudo npm install -g npm@latest fonctionne comme par magie

7 votes

Vous ne devriez jamais installer npm avec sudo, cela ne fera que causer plus de problèmes de permission plus tard quelque part. Il existe de nombreuses façons d'installer npm sans sudo, brew étant l'une d'entre elles, mais google en propose beaucoup d'autres.

24voto

Juned Khan Points 71

npm install -g npm@latest fonctionne bien ! et vous pouvez également remplacer le dernier pour des versions spécifiques comme npm install -g npm@5.6.0

J'espère que cela vous aidera ! !!

19voto

doh Points 154

Peut-être avez-vous déjà résolu ce problème, mais voici ce que j'ai trouvé lorsque j'ai eu exactement ce problème. J'avais 2 versions de npm installées.

Je l'ai vérifié comme suit :

grep \"version\" ~/.npm-packages/lib/node_modules/npm/package.json

  "version": "6.2.0"

grep \"version\" /usr/local/lib/node_modules/npm/package.json

  "version": "5.6.0",

J'ai contourné le problème en mettant à jour le chemin dans mon profil bash, mais j'aimerais savoir pourquoi (comment) je me suis retrouvé avec 2 versions. Voici la mise à jour :

tail -2 ~/.bash_profile

NPM_PACKAGES="${HOME}/.npm-packages"

PATH="$NPM_PACKAGES/bin:$PATH"

2 votes

Je pense que les gens ne comprennent pas ce qui fonctionne dans cette solution. Retirer le /usr/local/lib et gérer npm à partir de .npm-packages, comme il se doit.

1 votes

Après avoir essayé "ceci et cela", j'ai fini par installer à partir du programme d'installation de nodejs.org en faisant une installation personnalisée (en installant uniquement npm).

0 votes

Assurez-vous également d'avoir :$PATH à la fin. Dans mon cas, c'était au début et le coquillage utilisait la mauvaise version.

5voto

Vihar Manchala Points 215

J'ai rencontré le même problème. Vous avez peut-être déjà installé la version de npm, et il est maintenant temps de pointer l'installation de la nouvelle version de npm. Vous pouvez le faire en suivant les étapes ci-dessous.

  1. sudo nano /usr/local/lib/node_modules/npm/package.json
  2. changement "version" : "5.6.0" à "verison": "5.8.0"

0 votes

Même problème ici sur MacOS - en utilisant n pour exécuter plusieurs versions de noeuds, mais ne pouvait pas mettre à jour npm - ce paramètre doit être modifié manuellement dans l'application globale node_modules package.config. Belle trouvaille !

2 votes

Cela ne fait que modifier la version indiquée dans l'interface CLI, et non la version réellement utilisée.

0 votes

Merci, cela fonctionne pour moi puisque j'ai plus d'une version de npm installé sur mon MacBook

5voto

Chieh Points 1683

Dans mon cas, j'utilise nvm pour gérer différentes versions de node . Pour mettre à jour la version de npm, je dois

1 - Installez la dernière version de npm en naviguant vers votre actuelle version de node

cd ~/.nvm/versions/node/v10.9.0
npm install npm

ou vous pouvez probablement utiliser

nvm install-latest-npm

2 - Editer $PATH pour pointer vers votre version actuelle de node

NPM_PACKAGES="${HOME}/.nvm/versions/node/v10.9.0"
PATH="$NPM_PACKAGES/bin:$PATH"

0 votes

La première partie de cette réponse, naviguer vers la version actuelle que mon vm utilisait et l'installer là est ce qui a fonctionné pour moi. Comme @Mr. 14 l'a dit, vous allez dans le répertoire node, et non dans le répertoire npm. Ainsi, pour moi, l'emplacement de mon installation npm pour le vm /usr/local/Cellar/node@8.11.3_1/lib/node_modules/npm (je suis obligé d'utiliser une ancienne version en raison d'erreurs avec 10) et j'ai dû aller à /usr/local/Cellar/node@8.11.3_1 et faire npm install npm. Puis il a finalement enregistré la dernière version dans mon vm.

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