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.

BiAiB
la source

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, [email protected]installé , vous pouvez utiliser npxet éviter d'installer globalement la commande - appelez simplement:

npx npm-remote-ls bower
Gergo Erdosi
la source
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 [email protected]
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.

mgthomas99
la source
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.

Golopot
la source
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 "[email protected]"
    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.
msangel
la source
6

Vous pouvez utiliser howfat qui affiche également les statistiques de dépendance:

npx howfat -r tree jasmine

écran

Alexey Prokhorov
la source
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
Yogendra Singh
la source
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/[email protected] dependencies

yarn info @angular/[email protected] peerDependencies

Robert Brisita
la source
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