最近增加了npm audit
(用于审核依赖项)后,我注意到在node_modules
中安装的软件包数量和npm
审查的数量存在巨大差异。以下是一个示例:
以下是我的问题:
- 我正确地理解
281
是已安装的软件包总数吗? - 为什么
npm
要审核比项目中更多的软件包?
如果npm
发现漏洞,那么它可能需要回去审核其他软件包的版本,这可以理解。但在这种情况下,它发现了0个漏洞
,为什么还会有额外的工作呢?
更新:
关于顶级依赖和子依赖之间的区别,我认为有一些混淆。运行以下命令以重现类似的差异:
mkdir test-npm-count-discrepancy
cd test-npm-count-discrepancy
npm init
npm i standard-version
请注意,目前(撰写本文时),已添加了200多个依赖项(即standard-version及其所有子依赖项),但审核的包超过1000个。再次强调,上面的主要问题是“为什么npm审核的包比实际安装的还要多?”
package.json
中列出的依赖项不到10个。 - Greg Venechnpm ls --depth=0
命令时本地模块的数量,而执行npm ls
命令将显示与这些模块一起自动安装的嵌套模块列表。 - Raktim Biswas