最近添加了npm audit
(用于审核依赖性)之后,我注意到added
(安装在node_modules
中)与{{1}有多少个软件包之间存在巨大差异} audited
。这是一个示例:
这是我的问题:
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+
审核的软件包比实际安装的软件包更多?”。
答案 0 :(得分:1)
第一个问题: -社区,如果没有链接到依赖项列表或package.json之类的链接,就无法真正说出来。但是,如果您的软件包文件中只有几个文件,那么大多数时候它仍然是正常的。您可能自己安装了12个,但是NPM会自动安装大多数(如果不是全部)应用程序依赖项的依赖项。它可以帮助您加快工作流程。
对于第二个问题: -正如我对第一个问题的回答中提到的那样,它正在审核已安装的产品和已自动安装的产品,以便您安装的产品能够正常工作。
第三个问题: -它始终检查开发人员标记的漏洞,因此您可以获得最新版本,在大多数情况下,最新版本的漏洞最少,功能最多且最安全。
编辑:
npm install
的重点是更新当前依赖项并将新的依赖项安装到目录中。 npm audit
的重点是检查是否有标记为解决安全问题的更新的依赖项。
编辑2: 我想我已经明白了:它可能正在审核生产中已安装的依赖项,您的依赖项以及开发依赖项,以警告您其中之一的依赖项是开发人员不安全地构建的。