Wie kann ich den Abhängigkeitsbaum eines bestimmten npm-Moduls anzeigen?


143

Wie kann ich den Baum eines Moduls für npm verfügbar machen, aber nicht lokal installieren?

npm llerledigt den Job für lokal installierte Pakete. Es funktioniert jedoch nicht für nicht installierte oder global installierte Module.

Ich habe es versucht, npm list boweraber das ist es nicht.

Antworten:


112

Sie können das npm-remote-lsModul verwenden. Sie können es global installieren:

npm install -g npm-remote-ls

Und dann anrufen:

npm-remote-ls bower

Alternativ können npm@5.2.0Sie npxden Befehl verwenden und vermeiden, ihn global zu installieren. Vermeiden Sie einfach:

npx npm-remote-ls bower

7
Wie werden Module angezeigt, die von einem bestimmten Modul abhängen?
Orad

2
wird das noch gebraucht? auch mit neueren Versionen von npm?
Simon_Weaver

1
Für eine bestimmte Version können Sie diese Syntax verwendennpm-remote-ls primeng@1.0.0-beta.7
Simon_Weaver

2
@orad: Wenn es eine ist, die Sie installiert haben, npm ls
Paul Lynch

132

Mit dem Befehl können Sie NPM-Abhängigkeitsbäume generieren, ohne eine Abhängigkeit installieren zu müssen

npm list

Dadurch wird ein Abhängigkeitsbaum für das Projekt im aktuellen Verzeichnis generiert und auf der Konsole gedruckt.

Sie können den Abhängigkeitsbaum einer bestimmten Abhängigkeit wie folgt abrufen:

npm list [dependency]

Sie können auch die maximale Tiefenstufe festlegen, indem Sie dies tun

npm list --depth=[depth]

Beachten Sie, dass Sie nur den Abhängigkeitsbaum einer Abhängigkeit anzeigen können, die Sie entweder global oder lokal im NPM-Projekt installiert haben.


11
Ihr zweites druckt nur die Pakete, die von [Abhängigkeit] abhängen, es druckt keine Abhängigkeiten von [Abhängigkeit]. OP sagte auch ausdrücklich, dass das nicht das ist, wonach er sucht.
FINDarkside

7
Verwenden Sie -proddiese Option, um nur Produktionsabhängigkeiten (und keine devDependencies) aufzulisten.
PCworld

3
npm list und npm ls lesen beide den Ordner node_modules. Sie können keinen Baum abrufen, ohne zuerst die Abhängigkeiten zu installieren.
worc

npm Liste - Tiefe = 1 für eine Ebene
Mintedsky


26

Hier ist das mächtige offizielle Kommando:

npm view <PACKAGE> dependencies

Es werden nur die direkten Abhängigkeiten gedruckt , nicht der gesamte Baum.


3
Muss das Paket installiert werden? .\npm view core-js dependenciesgibt nichts auf meinem Computer zurück.
duct_tape_coder

@duct_tape_coder Nein, es muss nicht installiert werden. core-jshat keine Abhängigkeiten.
Cameron Hudson

9

Wenn Sie den tatsächlichen Abhängigkeitspfad eines bestimmten Pakets abrufen möchten und wissen möchten, warum Sie ihn haben, können Sie einfach fragen yarn why <MODULE>. Beispiel:

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

Alle Metadaten zum npm-Modul anzeigen

npm view mongoose(module name)

Alle Abhängigkeiten des Moduls anzeigen

npm view mongoose dependencies

Modul Alle Versionen oder Versionen anzeigen

npm view mongoose version
npm view mongoose versions

Alle Schlüsselwörter anzeigen

npm view mongoose keywords


1

Leider kann npm immer noch keine Abhängigkeiten von nicht installierten Paketen anzeigen. Nicht einmal die Seite eines Pakets listet die Abhängigkeiten korrekt auf. 🙄

Zum Glück Garn einlegen :

brew install yarn

Ermöglicht die Verwendung des Befehls info, um genaue Abhängigkeiten anzuzeigen:

yarn info @angular/router@4.4.7 dependencies

yarn info @angular/router@4.4.7 peerDependencies


1
Warum bietet Garn eine genaue Möglichkeit zum Anzeigen von Abhängigkeiten und npm bietet KEINE Möglichkeit zum Anzeigen von Abhängigkeiten. Könnte dies daran liegen, dass npm nicht deterministisch ist und Garn?
Brian Ogden
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.