NPM:为什么要安装此软件包?

Oli*_*itt 16 node.js npm

如何确定特定软件包的安装原因?换句话说,什么包依赖于这个包?

有问题的包是babelify. npm ls显示在顶层,但它不包含在package.json中的任何位置.

Kha*_*wad 46

使用npm ls到列表安装的软件包,并看到一个给定的包如的依赖关系图:

> npm ls core-js

my_module /path/to/my_module>
??? pug@2.0.4
  ??? pug-code-gen@2.0.2
    ??? constantinople@3.1.2
      ??? babel-types@6.26.0
        ??? babel-runtime@6.26.0
          ??? core-js@2.6.10
Run Code Online (Sandbox Code Playgroud)


Ben*_*ley 25

npm explain <package name>这就是您正在寻找的。它通过显示“自下而上”的视图来解释为什么包位于您的 node_modules 文件夹中。请参阅此处的文档

  • 请注意,这不适用于 npm 版本 &lt; 7 (5认同)

mik*_*ana 9

如您所述,npm ls显示软件包及其依赖性:

> npm ls leveldown
appless@5.0.0 C:\Users\mikem\Code\appless
`-- @architect/architect@5.7.0
  `-- dynalite@2.2.0
    `-- UNMET OPTIONAL DEPENDENCY leveldown@4.0.2
Run Code Online (Sandbox Code Playgroud)

如果npm ls在顶层显示它,并且它不是顶层的依赖项package.json,则可能以前需要它,现在不再使用。

使用npm prune删除未使用的包


Dhe*_*.S. 8

有一个名为的模块npm-why,用于识别安装包的原因。

当然,如果您使用的是yarn,则您有一个内置命令yarn why