Come visualizzare l'albero delle dipendenze di un determinato modulo npm?


145

Come posso rendere l'albero di un modulo disponibile per npm, ma non installato localmente?

npm llfa il lavoro per i pacchetti installati localmente. Ma non funziona per moduli non installati o moduli installati a livello globale.

Ci ho provato npm list bowerma non è così.

Risposte:


112

Puoi usare il npm-remote-lsmodulo. Puoi installarlo a livello globale:

npm install -g npm-remote-ls

E poi chiama:

npm-remote-ls bower

In alternativa, npm@5.2.0installato quindi è possibile utilizzare npxed evitare l'installazione globale del comando - basta chiamare:

npx npm-remote-ls bower

8
Come vedere i moduli che dipendono da un determinato modulo?
orad

2
questo è ancora necessario? anche con le versioni più recenti di npm?
Simon_Weaver,

1
per una versione specifica è possibile utilizzare questa sintassinpm-remote-ls primeng@1.0.0-beta.7
Simon_Weaver,

2
@orad: se è installato, npm ls
Paul Lynch,

132

È possibile generare alberi delle dipendenze NPM senza la necessità di installare una dipendenza utilizzando il comando

npm list

Ciò genererà un albero delle dipendenze per il progetto nella directory corrente e lo stamperà sulla console.

È possibile ottenere l'albero delle dipendenze di una dipendenza specifica in questo modo:

npm list [dependency]

Puoi anche impostare il massimo livello di profondità facendo

npm list --depth=[depth]

Si noti che è possibile visualizzare solo l'albero delle dipendenze di una dipendenza installata a livello globale o localmente nel progetto NPM.


11
Il secondo stampa solo i pacchetti che dipendono da [dipendenza], non stampa dipendenze di [dipendenza]. OP ha anche affermato specificamente che non è quello che sta cercando.
FINDarkside,

7
Utilizzare -prodper elencare solo le dipendenze di produzione (e non devDependencies).
pcworld,

3
Elenco npm e npm ls entrambi leggono la cartella node_modules, non è possibile ottenere un albero senza installare prima le dipendenze.
worc,

Elenco npm --depth = 1 per un livello
mintedsky il


26

Ecco il comando ufficiale impotente:

npm view <PACKAGE> dependencies

Stampa solo le dipendenze dirette , non l'intero albero.


3
Il pacchetto deve essere installato? .\npm view core-js dependenciesnon restituisce nulla sulla mia macchina.
duct_tape_coder il

@duct_tape_coder No, non è necessario installarlo. core-jsnon ha dipendenze.
Cameron Hudson,

9

Se vuoi ottenere il percorso di dipendenza effettiva di un pacchetto specifico e vuoi sapere perché ce l'hai, puoi semplicemente chiedere yarn why <MODULE>. esempio:

    $> 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

Visualizza tutti i metadati sul modulo npm

npm view mongoose(module name)

Visualizza tutte le dipendenze del modulo

npm view mongoose dependencies

Visualizza il modulo Tutte le versioni o Versioni

npm view mongoose version
npm view mongoose versions

Visualizza tutte le parole chiave

npm view mongoose keywords


1

Sfortunatamente npm non ha ancora modo di visualizzare le dipendenze dei pacchetti non installati. Nemmeno la pagina di un pacchetto elenca correttamente le dipendenze. 🙄

Fortunatamente l'installazione di filato :

brew install yarn

Permette a uno di usare il suo comando info per visualizzare dipendenze accurate:

yarn info @angular/router@4.4.7 dependencies

yarn info @angular/router@4.4.7 peerDependencies


1
Perché il filato fornisce e un modo accurato per visualizzare le dipendenze e npm non fornisce alcun modo per visualizzare le dipendenze, potrebbe essere perché npm non è deterministico e filato lo è?
Brian Ogden,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.