Détails
Pourquoi npm install dit que j'ai des dépendances non satisfaites ?
J'ai un paquet node. Lorsque j'exécute npm install
à partir de la racine du paquet, il installe un certain nombre de choses, mais affiche ensuite plusieurs messages d'erreur qui ressemblent à ceci :
npm WARN unmet dependency /Users/seanmackesey/google_drive/code/explore/generator/node_modules/findup-sync/node_modules/glob requires graceful-fs@'~1.2.0' ; but will load
Je dois être confus sur ce que fait exactement npm install
. S'il détecte une dépendance, ne devrait-il pas l'installer ? Dans quelles conditions me donne-t-il des messages d'erreur comme celui-ci, et comment puis-je résoudre les dépendances ?
400
3
Je crois que c'est parce que la résolution des dépendances est un peu cassée, voir https://github.com/npm/npm/issues/1341#issuecomment-20634338.
Voici les solutions possibles :
Installer manuellement les modules de premier niveau, contenant les dépendances non satisfaites :
npm install findup-sync@0.1.2
Restructurez votre package.json. Placez tous les modules de haut niveau (servant de dépendance pour les autres modules) en bas.
Exécutez à nouveau la commande
npm install
.Le problème peut être dû au fait que npm n'a pas réussi à télécharger tous les paquets en raison d'un dépassement de délai ou autre.
Remarque : Vous pouvez également installer manuellement les paquets qui ont échoué en utilisant la commande
npm install findup-sync@0.1.2
.Avant de lancer
npm install
, les étapes suivantes peuvent être utiles :rm -rf node_modules/
npm cache clean
.Pourquoi la suppression de node_modules est-elle parfois nécessaire ? Lorsqu'un module imbriqué ne parvient pas à s'installer lors de l'installation de
npm install
, l'installation suivante denpm install
ne détectera pas ces dépendances imbriquées manquantes.Si c'est le cas, il suffit parfois de supprimer la dépendance de premier niveau de ces modules imbriqués manquants, et de relancer
npm install
. VoirCela m'est arrivé quand le WIFI est tombé en panne pendant un
npm install
. Enlevernode_modules
et relancernpm install
a réglé le problème.Les réponses ci-dessus ne m'ont pas aidé complètement, même après avoir supprimé le répertoire
node_modules
.La commande ci-dessous m'a finalement aidé :
Notez que cela tire les modules de nœuds sur une connexion HTTP non sécurisée.
Src: https://stackoverflow.com/a/13119867/4082503