Como visualizar a árvore de dependências de um determinado módulo npm?

143

Como posso obter a árvore de um módulo disponível para o npm, mas não instalado localmente?

npm llfaz o trabalho para pacotes instalados localmente. Mas não funciona para módulos não instalados ou módulos instalados globalmente.

Eu tentei, npm list bowermas não é isso.

BiAiB
fonte

Respostas:

112

Você pode usar o npm-remote-lsmódulo Você pode instalá-lo globalmente:

npm install -g npm-remote-ls

E depois chame:

npm-remote-ls bower

Como alternativa, [email protected]instalado, você pode usar npxe evitar a instalação global do comando - basta chamar:

npx npm-remote-ls bower
Gergo Erdosi
fonte
7
Como ver os módulos que dependem de um determinado módulo?
orad 21/09/15
2
isso ainda é necessário? mesmo com versões mais recentes do npm?
Simon_Weaver 30/05
1
para uma versão específica, você pode usar esta sintaxenpm-remote-ls [email protected]
Simon_Weaver 30/05
2
@orad: Se é que tem instalado, ls NPM
Paul Lynch
132

Você pode gerar árvores de dependência do NPM sem a necessidade de instalar uma dependência usando o comando

npm list

Isso irá gerar uma árvore de dependência para o projeto no diretório atual e imprimi-lo no console.

Você pode obter a árvore de dependência de uma dependência específica da seguinte maneira:

npm list [dependency]

Você também pode definir o nível máximo de profundidade fazendo

npm list --depth=[depth]

Observe que você só pode exibir a árvore de dependência que você instalou globalmente ou localmente no projeto NPM.

mgthomas99
fonte
11
Seu segundo imprime apenas os pacotes que dependem de [dependência], não imprime dependências de [dependência]. A OP também disse especificamente que não é isso que ele está procurando.
precisa saber é o seguinte
7
Use -prodpara listar apenas dependências de produção (e não devDependencies).
PCWorld
3
npm list e npm ls lêem a pasta node_modules, você não pode obter uma árvore sem instalar primeiro as dependências.
WORC
lista npm --depth = 1 para um nível
mintedsky
26

Aqui está o comando oficial não poderoso:

npm view <PACKAGE> dependencies

Ele imprime apenas as dependências diretas , não a árvore inteira.

golopot
fonte
3
O pacote precisa ser instalado? .\npm view core-js dependenciesnão retorna nada na minha máquina.
58568
@duct_tape_coder Não, não precisa ser instalado. core-jsnão tem dependências.
Cameron Hudson
9

Se você deseja obter o caminho realmente dependente de um pacote específico e quer saber por que o possui, basta perguntar yarn why <MODULE>. exemplo:

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

Você pode usar o howfat, que também exibe estatísticas de dependência:

npx howfat -r tree jasmine

screensot

Alexey Prokhorov
fonte
5

Visualizar todos os metadados sobre o módulo npm

npm view mongoose(module name)

Ver todas as dependências do módulo

npm view mongoose dependencies

Módulo Visualizar todas as versões ou versões

npm view mongoose version
npm view mongoose versions

Ver todas as palavras-chave

npm view mongoose keywords
Yogendra Singh
fonte
1

Infelizmente, o npm ainda não tem como visualizar dependências de pacotes não instalados. Nem mesmo a página de um pacote lista as dependências corretamente. 🙄

Felizmente instalando fios :

brew install yarn

Permite usar um comando info para visualizar dependências precisas:

yarn info @angular/[email protected] dependencies

yarn info @angular/[email protected] peerDependencies

Robert Brisita
fonte
1
Por que o fio fornece uma maneira precisa de visualizar as dependências e o npm NÃO fornece uma maneira de visualizar as dependências, pode ser porque o npm não é determinístico e o fio é?
Brian Ogden