web-dev-qa-db-fra.com

Impossible de trouver le message d'erreur du module 'npmlog' lors de l'utilisation de la commande npm

Aujourd'hui est le premier jour de mon premier emploi. Après avoir configuré mon environnement de développement en mettant à jour les nœuds et npm sur mon Mac (OSX), il semble que quelque chose ne se soit pas cassé. Chaque fois que j'essaie d'utiliser npm dans ma ligne de commande (npm init, npm install, etc.), le message d'erreur suivant s'affiche: 

module.js: 339

jeter err;

Erreur: Impossible de trouver le module 'npmlog'

à Function.Module._resolveFilename (module.js: 337: 15)

à Function.Module._load (module.js: 287: 25)

à Module.require (module.js: 366: 17)

at require (module.js: 385: 17)

à /usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13

à l'objet. (/usr/local/lib/node_modules/npm/bin/npm->cli.js:76:3)

à Module._compile (module.js: 425: 26)

sur Object.Module._extensions..js (module.js: 432: 10)

sur Module.load (module.js: 356: 32)

à Function.Module._load (module.js: 311: 12)

Il n'y a pas beaucoup de message d'erreur à déclencher et la trace de la pile ne m'aide pas beaucoup non plus. Voici ce que j'ai essayé:

  1. J'ai cherché autour de Stackoverflow et bien qu'il y ait des problèmes similaires, les gens ont pu utiliser npm <something> pour résoudre leur problème, ce que je ne peux pas faire.
  2. Désinstallation et réinstallation de npm - N'a pas fonctionné car je ne peux pas utiliser la commande npm, des éléments tels que Sudo npm uninstall npm -g ne fonctionnent pas.
  3. Supprimez le répertoire npmlog du répertoire .npm, puis clonez à nouveau directement le dépôt github dans le répertoire.

J'espère que l'un d'entre vous a déjà rencontré ce problème ou a une idée de la façon de l'aborder. Toute aide est appréciée.

30
Parker Lewis

Voici les étapes qui ont fonctionné pour moi:

$ Sudo rm -rf /usr/local/bin/npm
$ Sudo rm -rf /usr/local/lib/node_modules/npm
$ brew uninstall node
$ brew install node
17
drosenblatt

Voici un bon lien Fixing npm On Mac OS X for Homebrew Users .

avec les commandes suivantes lorsque vous essayez de mettre à niveau node.js sous mac

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

Essayez curl -0 -L http://npmjs.org/install.sh | Sudo sh pour suivre les redirections. Notez également que j'ai ajouté Sudo avant la commande Sudo sh en fonction des autorisations de vos utilisateurs.

9
nickleefly

Je viens de rencontrer ce problème sur un Mac et, à y regarder de plus près, il me semble que le problème est que, dans le répertoire de l'application Node, dans certaines circonstances, le lien dans le répertoire node/bin vers npm dans lib/node_modules/npm/bin est remplacé par le fichier lui-même et que c’est pourquoi il échoue (et pourquoi toutes les méthodes de script le corrigent, car elles conservent correctement le lien de fichier).

Si je copie le contenu de node-v6.9.4-darwin-x64 avec cp, j’obtiens ce problème, mais si je copie les fichiers à l’aide du Finder, je ne le fais pas. Vous pouvez donc résoudre ce problème en recréant manuellement le lien avec ln si vous ne souhaitez pas utiliser le Finder (sinon, mv ou rsync -a pourrait également fonctionner; je ne les ai pas testés).

J'espère que cela aide quelqu'un qui vient ici pour ce problème.

Edit: je viens de trouver accidentellement la raison du problème sur les Mac (pour mon scénario particulier, en tout cas): J'ai toujours utilisé cp -r pour copier des répertoires. C'est parce que je suis vieux et que je n'apprends plus rien. La méthode correcte est cp -R, qui copie tout correctement, comme il se doit.

5
Kevin Teljeur

Je n'ai pas nécessairement "résolu" le problème autant que tout recommencer. J'ai utilisé ce post pour le faire: Comment désinstaller complètement Node.js et le réinstaller depuis le début (Mac OS X)

Si quelqu'un d'autre savait comment résoudre réellement le problème ou savait ce que j'avais fait pour le résoudre, je serais toujours très intéressé.

3
Parker Lewis

dans mon état, je viens brew uninstall node et télécharger sur le site officiel et a travaillé pour moi

3
Zander Zhang

J'ai frappé ceci sur Fedora 27 après avoir exécuté Sudo npm install npm -g.

Le problème était que j'avais initialement installé Node.js via Sudo dnf install nodejs qui installe npm dans /usr/local/bin et /usr/local/lib. Cependant, l'exécution de Sudo npm install installe une version distincte dans /usr/bin/

Lancer which npm indique que le npm supplémentaire est installé. Ensuite, les éléments suivants ont tout nettoyé pour moi:

$ Sudo rm /usr/bin/npm
$ Sudo rm -rf /usr/lib/node_modules/npm
$ dnf remove -y nodejs
$ dnf install -y nodejs
3
icc97

Pour moi, j'ai exécuté brew uninstall node puis téléchargé la dernière version à partir de nodejs.org et cela a fonctionné.

0
0xa6a

J'ai rencontré cette même erreur. C'était sur un serveur non connecté à Internet. J'avais déjà vu un fil sur Github qui mentionnait que des liens symboliques pouvaient parfois être supprimés lors de copies ou d'opérations sur des fichiers. J'ai donc fait une "recherche" sur le répertoire des noeuds pour les liens symboliques du serveur problématique et aucun lien n'a été trouvé. Faites la même chose sur un serveur en activité, où se trouvent des fichiers de liens symboliques.

Je suis allé à NODE_HOME/bin et ai fait un ls -l

Bien sûr, j'avais un fichier pour NPM. Effectué les mêmes étapes sur un serveur de travail et le fichier npm était un lien symbolique. Pour résoudre le serveur problématique, j'ai effectué les opérations suivantes:

rm npm

ln -s ../lib/node_modules/npm/bin/npm-cli.js npm

0
Ken

Même erreur lors de l’installation du rapporteur dans REDHAT linux a mis à jour le 

npm

déposer à 

/node-v6.10.2-linux-x64/bin/npm

pour le chemin du module comme ci-dessous:

Code avant 

var log = require('npmlog')

Code après

var log = require('/node-v6.10.2-linux-x64/lib/node_modules/npm/node_modules/npmlog')
0
Yusuf Kapasi