Dépendances NPM partagées par des dépendances

Sur npm 3.3.12 (noeud 4.2.2), il se passe ce qui suit:

npm install dans un projet où l’une des dépendances de mon projet est également une dépendance de l’une des autres dépendances. Par exemple:

  • Mon projet dépend de PackageA et PackageB
  • PackageA dépend également de PackageB
  • Mon projet et PackageA dépendent tous deux de la même version de PackageB

Ensuite, je lance npm update dans mon projet. La liste de sortie NPM:

 PackageB@xxx node_modules/PackageB -> node_modules/PackageA/node_modules/PackageB 

Alors, tout à coup, PackageB n’est pas dans les node_modules de mon projet (uniquement dans les node_modules sous PackageA) et nécessite (“PackageB”) dans les fichiers du projet échouer.

Quelle en est la cause et comment puis-je éviter au mieux le problème?

C’était un bug, corrigé dans NPM 3.4.1:

https://github.com/npm/npm/issues/10446