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.

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, npm@5.2.0instalado, você pode usar npxe evitar a instalação global do comando - basta chamar:

npx npm-remote-ls bower

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 primeng@1.0.0-beta.7
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.


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.


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

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


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/router@4.4.7 dependencies

yarn info @angular/router@4.4.7 peerDependencies


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.