【发布时间】:2018-09-10 01:21:56
【问题描述】:
在最近添加了npm audit(用于审计依赖项)之后,我注意到added(安装在node_modules)的软件包数量与npm 的audited 的数量之间存在巨大差异。这是一个例子:
这是我的问题:
- 我是否更正
281是安装的软件包总数? - 为什么
npm审核的包比我项目中的包多?
如果发现漏洞,npm 可能必须退出并 audit 其他软件包版本对我来说是有道理的,但在这种情况下,found 0 vulnerabilities 那么为什么要进行额外的工作?
更新:
我认为顶级与子依赖关系有些混乱。运行以下命令来重现类似的差异:
mkdir test-npm-count-discrepancy
cd test-npm-count-discrepancy
npm init
npm i standard-version
请注意(在撰写本文时)200+ 依赖项是 added(即 standard-version 及其所有子依赖项),但 1000+ 包是 audited。重申一下,上面的主要问题是“为什么npm 审核的包比实际安装的包多?”。
【问题讨论】:
-
npm 不检查嵌套包吗?
-
它是但
281是顶级+嵌套包的计数(我认为)。在我的实际package.json中列出的依赖项少于 10 个。 -
考虑到 281 是您拥有的本地模块的数量,如果您执行
npm ls --depth=0并且执行npm ls将显示自动安装的嵌套模块列表使用这些模块。 -
@RaktimBiswas no
npm ls --depth=0只会列出我的 8 个明确安装的包。如果您考虑deduped行,npm ls正好列出 281 个。我 99% 确定我的第一个问题的答案是肯定的,281是总数(顶层和嵌套)。audit看到的和本地安装的肯定存在差异。
标签: javascript npm