¿Cómo ver el árbol de dependencias de un módulo npm dado?


143

¿Cómo puedo obtener el árbol de un módulo disponible para npm, pero no instalado localmente?

npm llhace el trabajo para paquetes instalados localmente. Pero no funciona para módulos no instalados o módulos instalados globalmente.

Lo intenté npm list bowerpero no es así.

Respuestas:


112

Puedes usar el npm-remote-lsmódulo. Puedes instalarlo globalmente:

npm install -g npm-remote-ls

Y luego llame:

npm-remote-ls bower

Alternativamente, npm@5.2.0instalado, puede usar npxy evitar la instalación global del comando; solo llame:

npx npm-remote-ls bower

77
¿Cómo ver los módulos que dependen de un módulo dado?
orad

2
esto todavía se necesita? incluso con versiones más nuevas de npm?
Simon_Weaver

1
para una versión específica puede usar esta sintaxisnpm-remote-ls primeng@1.0.0-beta.7
Simon_Weaver,

2
@orad: Si es uno que ha instalado, npm ls
Paul Lynch

132

Puede generar árboles de dependencia NPM sin la necesidad de instalar una dependencia utilizando el comando

npm list

Esto generará un árbol de dependencia para el proyecto en el directorio actual y lo imprimirá en la consola.

Puede obtener el árbol de dependencias de una dependencia específica de esta manera:

npm list [dependency]

También puede establecer el nivel de profundidad máxima haciendo

npm list --depth=[depth]

Tenga en cuenta que solo puede ver el árbol de dependencias de una dependencia que haya instalado globalmente o localmente en el proyecto NPM.


11
El segundo solo imprime los paquetes que dependen de [dependencia], no imprime dependencias de [dependencia]. OP también dijo específicamente que eso no es lo que está buscando.
FINDarkside

77
Úselo -prodsolo para enumerar las dependencias de producción (y no devDependencies)
pcworld

3
npm list y npm ls leen la carpeta node_modules, no puede obtener un árbol sin instalar primero las dependencias.
worc

npm list --depth = 1 para un nivel
mintedsky


26

Aquí está el poderoso comando oficial:

npm view <PACKAGE> dependencies

Imprime solo las dependencias directas , no todo el árbol.


3
¿El paquete tiene que estar instalado? .\npm view core-js dependenciesNo devuelve nada en mi máquina.
duct_tape_coder

@duct_tape_coder No, no tiene que estar instalado. core-jsno tiene dependencias
Cameron Hudson

9

Si desea obtener la ruta de dependencia real de un paquete específico y desea saber por qué lo tiene, simplemente puede preguntar yarn why <MODULE>. ejemplo:

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

Ver todos los metadatos sobre el módulo npm

npm view mongoose(module name)

Ver todas las dependencias del módulo

npm view mongoose dependencies

Ver todas las versiones o módulo de versiones

npm view mongoose version
npm view mongoose versions

Ver todas las palabras clave

npm view mongoose keywords


1

Lamentablemente, npm todavía no tiene una forma de ver las dependencias de los paquetes no instalados. Ni siquiera la página de un paquete enumera las dependencias correctamente. 🙄

Afortunadamente instalando hilo :

brew install yarn

Le permite a uno usar su comando de información para ver dependencias precisas:

yarn info @angular/router@4.4.7 dependencies

yarn info @angular/router@4.4.7 peerDependencies


1
¿Por qué el hilo proporciona una forma precisa de ver las dependencias y npm NO proporciona una manera de ver las dependencias, podría ser porque npm no es determinista y el hilo sí lo es?
Brian Ogden
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.