web-dev-qa-db-fra.com

npm mise à jour cassé npm

Je viens de suivre ce guide pour mettre à jour npm (mon module d’appareil photo nodered ne fonctionnant pas),

npm install -g npm

mais maintenant, mon installation npm semble complètement cassée. Si je tape juste

npm

ou

npm update

Je reçois

/usr/local/lib/node_modules/npm/bin/npm-cli.js:79 let notifier = require ('update-notifier') ({pkg}) ^^^

SyntaxError: Déclarations couvertes par des blocs (let, const, fonction, classe) non encore prises en charge en dehors du mode strict

J'ai essayé

Sudo apt-get remove npm
Sudo apt-get install npm

mais la réinstallation n'a pas aidé.

Je pense que la version de mon nœud doit être mise à jour à partir de la v4.8.2 mais je pensais que cela n’était possible que avec npm?

25
Wayneio

Vous avez probablement installé npm deux fois, l’un en /usr/local/bin et l’autre en /usr/bin.

Tout d'abord, vous pouvez essayer de supprimer le module npm qui a été installé en mettant à niveau npm. Essayez de lancer ceci:

  • rm -r /usr/local/lib/node_modules/npm
  • /usr/bin/npm uninstall npm

Une fois que vous avez une version en cours d'exécution de npm, installez une version plus récente de node avant de mettre à niveau npm. Ensuite, supprimez la version de votre distribution Linux.

Si la première solution ne fonctionne pas, ne autre approche consiste à installer une version récente du noeud (sans utiliser npm bien sûr):

curl -sL https://deb.nodesource.com/setup_10.x | Sudo -E bash -
Sudo apt-get install -y nodejs
33
Maxime Chéramy

(solution pour centos .... je suppose que cela fonctionnerait aussi sur Ubuntu):

pour nettoyer complètement ma machine centos, j'ai également procédé comme suit: mon utilisateur est "centos" et ma maison est/home/centos:

Sudo rm -rf /usr/local/bin/npm 
Sudo rm -rf /usr/local/bin/npx
Sudo rm -rf /usr/lib/node_modules/
Sudo rm -rf /usr/bin/npm
Sudo rm -r /usr/local/lib/node_modules/
Sudo rm -rf /usr/local/bin/node
Sudo rm -rf /usr/bin/npm
Sudo rm -rf /usr/lib/node_modules/
rm -rf /home/centos/.npm/
rm -rf /home/centos/node*
rm -rf /home/centos/.node-gyp/
Sudo rm -rf /root/.npm/
Sudo rm /usr/bin/node
Sudo rm -rf /usr/local/include/node

seulement à ce stade j'ai réinstallé à nouveau:

wget http://nodejs.org/dist/latest/node-v11.4.0-linux-x64.tar.gz
Sudo tar --strip-components 1 -xzvf node-v* -C /usr/local

et les choses fonctionnent à nouveau:

node --version
v11.4.0
npm --version
6.4.1
6
Pierluigi Vernetto

Pour ceux qui ont utilisé Google pour trouver cela, vous pouvez être tenté d’installer via curl -sL https://deb.nodesource.com/setup_10.x | Sudo -E bash - puis de procéder à l’installation avec Sudo apt install nodejs.

Cependant, j'ai rencontré ce problème malgré tout. N'oubliez pas que npm @ 6 a abandonné la prise en charge du noeud @ <= 4, ce qui est un facteur contributif ici. Si vous voulez être sûr que tout est installé au plus tard et que les versions correctes sont correctes, je vous recommande vivement d'installer via nvm .

via les instructions nvm sur leur GitHub : Vous pouvez ajouter le script d’installation avec

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

Ensuite, vous pouvez commencer à utiliser NVM. Vous devrez probablement redémarrer votre terminal. Après l’installation, quittez le terminal, redémarrez-le et vérifiez que nvm est installé avec nvm --version.

Si tout se passe bien, vous pouvez installer n’importe quelle version spécifique de node avec npm. La dernière version stable du noeud au moment de l’écriture est 10.15.3, donc

 nvm install 10.15.3

Et bien sûr, si vous avez besoin d’aide, nvm --help dispose d’une liste d’options.

2
ZontarZon

Si vous utilisez nvm pour installer npm et node, essayez cette solution.

  1. Apprenez à connaître l'emplacement exact du nœud actuellement utilisé et de l'installation de npm:

    which node

    Dans mon cas, c'était /home/ubuntu/.nvm/versions/node/

  2. Maintenant, supprimez toutes les versions du noeud en utilisant:

    Sudo rm -rf /home/ubuntu/.nvm/versions/node/

  3. Vous pouvez maintenant utiliser nvm pour installer votre version requise de node et npm.

    nvm install 4.9.1

1
Achint Sharma

D'autres réponses n'ont pas fonctionné pour moi sur Ubuntu et se sont retrouvées dans une impasse, avec un npm cassé ou incapable de réinstaller/mettre à jour npm.

La solution radicale que j'ai utilisée:

1/Supprimez toutes les traces de noeud. Suivez cette page en utilisant le script remove.sh en bas: http://kselax.ru/en/npm-errors/

2/Ensuite, réinstallez de nouveau le noeud nodejs + npm en utilisant le dernier script d’installation: https://github.com/nodesource/distributions/blob/master/README.md

0
Thibault

Pour moi, réinstaller npm a fonctionné:

npm install -g npm
0
Abhinav Kumar