在最近添加npm audit(用于审计依赖项)之后,我注意到有多少包added(安装在 中node_modules)和有多少是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
Run Code Online (Sandbox Code Playgroud)
请注意(在撰写本文时)200+依赖项是added(即standard-version及其所有子依赖项),但1000+包是audited. 再次重申,上面的主要问题是“为什么npm审核的包比实际安装的包多?”。
小智 1
对于第一个问题: - 社区如果没有依赖项列表或 package.json 之类的链接,就无法真正这么说。但是,如果你的包文件中只有几个,那么大多数时候还是正常的。您可能自己安装了 12 个依赖项,但 NPM 会自动为您安装应用程序依赖项的大部分(如果不是全部)依赖项。它有助于加快您的工作流程。
对于第二个问题: - 正如我在回答第一个问题时提到的,它正在审核您安装的和自动安装的,以便您安装的正常工作。
对于第三个问题: - 它总是检查开发人员标记的漏洞,以便您可以获得最新版本,在大多数情况下,该版本是错误最少、功能最强大且最安全的。
编辑:重点npm install是更新当前依赖项并将新依赖项安装到目录中。重点npm audit是检查是否有标记为修复安全问题的更新的依赖项。
编辑2:我想我已经明白了:它可能会审核已安装的生产依赖项、您的依赖项和开发依赖项,以警告您您的依赖项之一是由开发人员不安全地构建的。