如何确定我的哪些依赖项依赖于 node_modules 中的特定包?

How can I determine which of my dependencies depends on a particular package in my node_modules?

Github 最近引入了一项功能,可以通知您 package-lock.json 中的安全漏洞。我想解决这些问题,但是这里列出的大多数包都是我的依赖项的依赖项,因此不清楚需要升级哪个顶级(列在我的 package.json 中)包来解决这个问题.

我意识到我可以进入我的 package-lock.json,找到包裹,一直追踪直到我找到我的 package.json 中的一个包裹,但是当我有几十个时,这似乎不必要地乏味要更新的包。编写一个自动化的脚本也不会太难,但在我进行这项工作之前,我希望有一个现有的工具或(理想情况下)npm 函数可以简单地给我答案。

所以,假设我不可能是第一个想要这样做的人,我的问题是: 如何确定我的 package.json 中的哪个包导致另一个特定的包被列在我的 package-lock.json 中,而无需手动检查包锁并追溯每个包?

您可以使用 npm ls <package_name>.

示例输出:

# npm ls promzard
└─┬ init-package-json@0.0.4
  └── promzard@0.1.5