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é:
npm <something>
pour résoudre leur problème, ce que je ne peux pas faire.Sudo npm uninstall npm -g
ne fonctionnent pas.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.
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
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
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.
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.
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é.
dans mon état, je viens brew uninstall node
et télécharger sur le site officiel et a travaillé pour moi
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
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é.
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
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')