Pourquoi l'installation d'un paquet npm ajoute-t-elle de nombreux sous-dossiers dans les modules de nœuds?

J'ai mis à jour node / npm que j'utilise avec mes projets grunt.

, Cependant quand je veux ajouter un package à un projet myproject/ (dire npm install grunt-favicon) il semble ajouter des centaines de dossiers de myproject/node_modules/ alors qu'elle n'est utilisée pour ajouter un normalement précédé avec grunt comme node_modules/grunt-favicon.

Ma connaissance de ces choses est basique mais celles-ci semblent être des dépendances requises, et même certains de ces éléments ont encore plus de dépendances.

Ne devrait-il pas ajouter ces dépendances quelque part d'autre? Si oui comment puis-je corriger cela?

J'utilise npm 3.3.5, node 4.1.1, grunt-cli v0.1.13 et grunt v0.4.5.

Et cette capture d'écran montre ~/.npm à gauche puis ~/myproject/node_modules à droite

~/.npm à gauche alors

26
demandé sur mik01aj 2015-10-05 17:32:41

1 réponses

C'est correct, ne vous inquiétez pas. Vous installez toujours les paquets localement, juste la structure de répertoire semble un peu différente. C'est un comportement qui a changé dans npm v3.0.0: maintenant, toutes les dépendances des dépendances sont installées directement dans le dossier node_modules (dans la mesure où cela ne provoque pas de conflits de version). Cela réduit considérablement la taille de l'arborescence des fichiers.

À Partir de mnp 3.0.0 notes de version de:

Plat, plat, Plat!

Vos dépendances seront maintenant installé au maximum à plat. Dans la mesure du possible, toutes vos dépendances, et leurs dépendances, et leurs dépendances seront installées dans le dossier node_modules de votre projet sans imbrication. Vous ne verrez que des modules imbriqués l'un sous l'autre lorsque deux (ou plusieurs) modules ont des dépendances conflictuelles.

30
répondu mik01aj 2015-10-05 14:44:52