Comment afficher l'arborescence de dépendances d'un module npm donné?


145

Comment puis-je obtenir l'arborescence d'un module disponible pour npm, mais pas installé localement?

npm llfait le travail pour les packages installés localement. Mais cela ne fonctionne pas pour les modules non installés ou les modules installés globalement.

J'ai essayé npm list bowermais ce n'est pas ça.

Réponses:


112

Vous pouvez utiliser le npm-remote-lsmodule. Vous pouvez l'installer globalement:

npm install -g npm-remote-ls

Et puis appelez:

npm-remote-ls bower

Alternativement, npm@5.2.0installé , vous pouvez utiliser npxet éviter d'installer globalement la commande - appelez simplement:

npx npm-remote-ls bower

8
Comment voir les modules qui dépendent d'un module donné?
orad

2
c'est encore nécessaire? même avec les nouvelles versions de npm?
Simon_Weaver

1
pour une version spécifique, vous pouvez utiliser cette syntaxenpm-remote-ls primeng@1.0.0-beta.7
Simon_Weaver

2
@orad: Si c'est celui que vous avez installé, npm ls
Paul Lynch

132

Vous pouvez générer des arborescences de dépendances NPM sans avoir besoin d'installer une dépendance à l'aide de la commande

npm list

Cela générera une arborescence de dépendances pour le projet dans le répertoire actuel et l'imprimera sur la console.

Vous pouvez obtenir l'arborescence de dépendances d'une dépendance spécifique comme ceci:

npm list [dependency]

Vous pouvez également définir le niveau de profondeur maximum en faisant

npm list --depth=[depth]

Notez que vous pouvez uniquement afficher l'arborescence de dépendances d'une dépendance que vous avez installée soit globalement, soit localement dans le projet NPM.


11
Votre deuxième n'imprime que les packages qui dépendent de [dependency], il n'imprime pas les dépendances de [dependency]. OP a également précisé que ce n'était pas ce qu'il recherchait.
FINDarkside

7
Utilisez -prodpour lister uniquement les dépendances de production (et pas de devDependencies).
pcworld

3
npm list et npm ls lisent tous les deux le dossier node_modules, vous ne pouvez pas obtenir une arborescence sans installer les dépendances au préalable.
worc

npm list --depth = 1 for one level
mintedsky


26

Voici la commande officielle impuissante:

npm view <PACKAGE> dependencies

Il imprime uniquement les dépendances directes , pas l'arborescence entière.


3
Le package doit-il être installé? .\npm view core-js dependenciesne renvoie rien sur ma machine.
duct_tape_coder

@duct_tape_coder Non, il n'est pas nécessaire de l'installer. core-jsn'a pas de dépendances.
Cameron Hudson

9

Si vous voulez obtenir le chemin de dépendance réel d'un package spécifique et que vous voulez savoir pourquoi vous l'avez, vous pouvez simplement demander yarn why <MODULE>. exemple:

    $> yarn why mime-db
    yarn why v1.5.1
    [1/4] Why do we have the module "mime-db"...?
    [2/4] Initialising dependency graph...
    [3/4] Finding dependency...
    [4/4] Calculating file sizes...
    => Found "mime-db@1.37.0"
    info Reasons this module exists
       - "coveralls#request#mime-types" depends on it
       - Hoisted from "coveralls#request#mime-types#mime-db"
    info Disk size without dependencies: "196kB"
    info Disk size with unique dependencies: "196kB"
    info Disk size with transitive dependencies: "196kB"
    info Number of shared dependencies: 0
    Done in 0.65s.


5

Voir toutes les métadonnées sur le module npm

npm view mongoose(module name)

Afficher toutes les dépendances du module

npm view mongoose dependencies

Module Afficher toutes les versions ou versions

npm view mongoose version
npm view mongoose versions

Voir tous les mots-clés

npm view mongoose keywords


1

Malheureusement, npm n'a toujours pas de moyen d'afficher les dépendances des packages non installés. Même la page d' un package ne répertorie pas correctement les dépendances. 🙄

Heureusement, installer du fil :

brew install yarn

Permet d'utiliser sa commande info pour afficher des dépendances précises:

yarn info @angular/router@4.4.7 dependencies

yarn info @angular/router@4.4.7 peerDependencies


1
Pourquoi yarn fournit-il un moyen précis d'afficher les dépendances et npm ne fournit AUCUN moyen d'afficher les dépendances, cela pourrait-il être dû au fait que npm n'est pas déterministe et que le fil l'est?
Brian Ogden le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.