¿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í.

BiAiB
fuente

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, [email protected]instalado, puede usar npxy evitar la instalación global del comando; solo llame:

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

mgthomas99
fuente
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.

golopot
fuente
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 "[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
fuente
6

Puede usar howfat que también muestra estadísticas de dependencia:

npx howfat -r tree jasmine

pantallazo

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

yarn info @angular/[email protected] peerDependencies

Robert Brisita
fuente
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