如何查看给定npm模块的依赖关系树?


143

如何获取npm可用但未本地安装的模块树?

npm ll完成本地安装的软件包的工作。但是对于未安装的模块或全局安装的模块不起作用。

我试过了npm list bower,不是那样。

Answers:


112

您可以使用该npm-remote-ls模块。您可以全局安装它:

npm install -g npm-remote-ls

然后调用:

npm-remote-ls bower

另外,npm@5.2.0安装后,您可以使用npx并避免全局安装命令-只需调用:

npx npm-remote-ls bower

7
如何查看依赖于给定模块的模块?
orad 2015年

2
这还需要吗?即使使用较新版本的npm?
Simon_Weaver

1
对于特定版本,您可以使用以下语法npm-remote-ls primeng@1.0.0-beta.7
Simon_Weaver

2
@orad:如果已安装npm ls
Paul Lynch

132

您可以使用以下命令生成NPM依赖关系树,而无需安装依赖关系

npm list

这将在当前目录中为项目生成一个依赖关系树,并将其打印到控制台。

您可以像这样获取特定依赖项的依赖关系树:

npm list [dependency]

您还可以通过执行以下操作来设置最大深度级别:

npm list --depth=[depth]

请注意,您只能查看在全局或本地安装到NPM项目的依赖关系的依赖关系树。


11
您的第二个只打印依赖于[dependency]的程序包,不打印依赖于[dependency]的包。OP还明确表示这不是他想要的。
FINDarkside

7
使用-prod仅列表产生依赖性(没有devDependencies)。
pcworld

3
npm list和npm ls都读取了node_modules文件夹,如果不先安装依赖项,就无法获得树。
worc

npm list --depth = 1一级
mintedsky '19


26

这是无能的官方命令:

npm view <PACKAGE> dependencies

打印直接依赖项,而不打印整个树。


3
是否必须安装该软件包?.\npm view core-js dependencies在我的机器上不返回任何内容。
pipe_tape_coder

@duct_tape_coder不,不必安装。core-js没有依赖关系。
卡梅隆·哈德森

9

如果您想获取特定程序包的实际依赖路径,并想知道为什么要使用它,只需询问即可yarn why <MODULE>。例:

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

查看有关npm模块的所有元数据

npm view mongoose(module name)

查看模块的所有依赖关系

npm view mongoose dependencies

查看所有版本或版本模块

npm view mongoose version
npm view mongoose versions

查看所有关键字

npm view mongoose keywords


1

不幸的是,npm仍然无法查看未安装软件包的依赖性。甚至没有包裹的页面正确列出依赖项。🙄

幸运地安装了yarn

brew install yarn

允许使用其info命令查看准确的依赖关系:

yarn info @angular/router@4.4.7 dependencies

yarn info @angular/router@4.4.7 peerDependencies


1
为什么yarn提供了一种查看依赖关系的准确方法,而npm没有提供查看依赖关系的方法,这可能是因为npm不是确定性的,而yarn是呢?
Brian Ogden
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.