“ npm install”和“ npm audit”计数之间的区别?

时间:2018-09-08 20:31:23

标签: javascript npm

最近添加了npm audit(用于审核依赖性)之后,我注意到added(安装在node_modules中)与{{1}有多少个软件包之间存在巨大差异} audited。这是一个示例:

npm install output

这是我的问题:

  • 我是否纠正npm是已安装的软件包总数?
  • 为什么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包是{{1} }。再次重申,上面的主要问题是“为什么1000+审核的软件包比实际安装的软件包更多?”。

1 个答案:

答案 0 :(得分:1)

第一个问题:  -社区,如果没有链接到依赖项列表或package.json之类的链接,就无法真正说出来。但是,如果您的软件包文件中只有几个文件,那么大多数时候它仍然是正常的。您可能自己安装了12个,但是NPM会自动安装大多数(如果不是全部)应用程序依赖项的依赖项。它可以帮助您加快工作流程。

对于第二个问题:  -正如我对第一个问题的回答中提到的那样,它正在审核已安装的产品和已自动安装的产品,以便您安装的产品能够正常工作。

第三个问题:  -它始终检查开发人员标记的漏洞,因此您可以获得最新版本,在大多数情况下,最新版本的漏洞最少,功能最多且最安全。

编辑: npm install的重点是更新当前依赖项并将新的依赖项安装到目录中。 npm audit的重点是检查是否有标记为解决安全问题的更新的依赖项。

编辑2: 我想我已经明白了:它可能正在审核生产中已安装的依赖项,您的依赖项以及开发依赖项,以警告您其中之一的依赖项是开发人员不安全地构建的。