2

我试图确保我的项目在生产中没有漏洞,所以我运行了:

npm audit > vulnerabilities.txt

然后我搜索了“依赖关系”的所有实例

这带来了一个列表,如:

Line 199: Dependency of babel-preset-es2015 [dev]
Line 215: Dependency of babel-preset-es2015 [dev] 
Line 230: Dependency of babel-preset-es2015 [dev]     

我可以假设如果他们都有那个 [dev] 标签,那么 npm audit 在生产中没有发现包漏洞吗?

4

2 回答 2

1

看起来答案是肯定的。

为了验证这一点,我运行了 npm audix fix --production 然后运行 npm audit 生成了一个列表,其中每个依赖项都是标记为 [dev] 的“依赖项”。

如果在某些时候 npm 直接支持 --production 标志,npm audit那将更容易。

于 2019-07-30T20:06:50.207 回答
0

在较旧的 npm 版本中,您可以在下面执行此操作,即使在较新的版本中我发现 --production 标志非常错误并且节点仍然报告 devDependencies,在这两种情况下您都可以使用它:

npm prune --production --dry-run

上面将输出来自内部依赖项的任何漏洞。不过,您需要手动修复任何漏洞。

注意:我合作过的许多项目都错误地在 devDependencies 中包含生产依赖项,而不是依赖项。这当然需要先解决。(只需在 package.json 和 npm i 中移动声明 - 如果需要,检查锁定文件中的确切版本)

如果来自 node_module 的代码用于客户端(如果使用它有时可能很难分辨)它应该在依赖项中(例如 corejs)

如果您有一个节点后端/托管,那么您需要检查它是否也用于生产中的 Node BE。

于 2021-07-02T06:28:58.797 回答