web-dev-qa-db-fra.com

Obtention de npm: commande introuvable. Comment puis-je réinstaller NPM quand le noeud est déjà installé? Où est-ce que NPM est allé?

Je commence Apprenez à créer des applications Web modernes avec le didacticiel AngularJS et rencontrez des problèmes très tôt.

J'ai un noeud installé: 

/path/ang-news node -v
v0.10.26

J'utilisais NPM plus tôt, mais j'avais des problèmes avec Yeoman. J'ai répété ces étapes il y a quelque temps, mais Grunt a cessé de fonctionner, alors j'ai recommencé à zéro. 

Iran:

$ Sudo npm install -g generator-angular

et toutes les dépendances s'installaient jusqu'à ce que je reçoive:

npm WARN package.json [email protected] No repository field.
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants generator-karma@>=0.8.2

J'ai ensuite essayé de mettre à jour: 

$ npm update -g

J'aurais dû l'exécuter en tant qu'administrateur. J'ai reçu des tonnes de messages d'erreur, cela semblait le plus pertinent:

npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.1.0
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g"
npm ERR! cwd /path/ang-news
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3

npm ERR! not ok code 0

Ensuite, j'ai essayé de désinstaller generator-karma et de recommencer fraîchement:

$ Sudo npm uninstall -g generator-karma

mais a reçu: 

Sudo: npm: command not found

$ npm -v
-bash: /usr/local/bin/npm: No such file or directory

_ {Ma première question est: Pourquoi le NPM a-t-il soudainement disparu?} _

[EDIT: Félicitations à @ try-catch-finally pour souligner les dégâts causés par le basculement entre l'utilisateur normal et Sudo lors de l'exécution de commandes. Il s'avère que j'ai gâché mon environnement utilisateur et que NPM n'était plus installé.] 

Si j'ai bien compris, NPM est installé lorsque vous installez Node. Ma deuxième question est: comment puis-je réinstaller NPM uniquement?} Je préférerais ne pas avoir à réinstaller Node depuis le début.

[EDIT: Félicitations à @hawk et @ try-catch-finally - il ne semble pas que l'installation de NPM seul soit une option, mais il existe des moyens simples de réinstaller les deux .] 

16
Rotimi
  1. Si vous avez un nœud de travail, vous pouvez réinstaller npm 

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

  1. Malheureusement, npm update -g ne fait pas ce que tout le monde attend. La réparation est sur la feuille de route NPM, mais cela va prendre un certain temps.

  2. Vous n'avez presque jamais besoin d'installer un package globalement, à moins que (comme generator-angular ou grunt-cli) vous souhaitiez utiliser ce package en tant que commande.

38
Sam Mikes

Juste au cas où vous avez fait cela avec brasser, je recommande cet article sur github. Vous permettra d'économiser beaucoup de temps. 

https://Gist.github.com/DanHerbert/9520689

Correction de npm Sous Mac OS X pour les utilisateurs Homebrew Exécutez les commandes suivantes pour supprimer tous les modules npm globaux existants, désinstaller noeud & npm, réinstallez le noeud avec les valeurs par défaut appropriées, installez npm comme son propre paquet et configurez modules npm globaux à installer.

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.node >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

Node et npm doivent être correctement installés à ce stade. La dernière étape consiste à ajouter ~/.node/bin à votre PATH pour que les commandes que vous installez globalement soient utilisables. J'ai ajouté cette ligne à mon script ~/.path, qui est exécuté via ~/.bash_profile. Exécutez la ligne suivante telle quelle.

export PATH="$HOME/.node/bin:$PATH"
4
alphapilgrim

J'ai rencontré exactement le même problème après l'exécution de la commande d'exécution pour installer npm avec la dernière version sur redhat 7.1 :

    npm install npm@latest -g

après quelques essais, j'ai trouvé la solution:

    yum reinstall npm

J'espère que cela pourrait aider les utilisateurs de redhat/centos.

0
Zhi Yuan