【问题标题】:Check which npm package installs lodash dependency检查哪个 npm 包安装了 lodash 依赖项
【发布时间】:2023-09-02 02:46:01
【问题描述】:

我正在使用 webpack 为应用程序构建生产包,lodash,虽然我没有明确安装它并且它不存在于我的 package.json 中,但正在插入到我的 node_modules 文件夹中。

当我运行npm uninstall --save-dev lodash(有效地从node_modules 中删除lodash 文件夹)并重新运行构建过程时,我的包显着缩小。我想确定哪个包包含并需要完整的 lodash 库。

如何确定我的许多 npm 包中的哪些需要 lodash?


注意:

我正在使用包lodash.debouncelodash.throttle。但是lodash.throttle 只有lodash.debounce 的依赖,而lodash.debounce 没有任何其他的lodash 依赖。

【问题讨论】:

  • 但是你的 npm 包可能需要 lodash 是有原因的。
  • 大概,但如果它对我的生产包有如此大的贡献,我可能会考虑删除需要它的包。这就是为什么我想知道哪些软件包需要它。
  • 好吧,你说你正在使用debouncethrottle。如果你完全删除了 lodash,你的脚本就不再工作了,是吗?
  • 这两个包没有其他依赖项(根据它们自己的 package.json 文件),并且我的应用程序在卸载 lodash 后可以正常运行。
  • npm ls lodash 应该在整个依赖树中显示lodash 的所有实例。

标签: javascript node.js npm webpack


【解决方案1】:

我正在寻找从 3.5.3 隐式升级到 3.9.7 的 typescript 包。 在@Kenan 的帮助下,我将做出贡献:

以 ll 或 la 运行时,默认显示扩展信息。 块引用 https://docs.npmjs.com/cli/ls.html

npm [ls|la|list] [[<@scope>/]<pkg> ...]

在我的情况下,package.json 中的 typescript 版本为 ^3.5.3,但由于 ^ 字符,它正在升级到 3.9.7。 npm 正在安装此包的最新版本的主要版本 3。安装的版本 3.9.7 与 package.json 文件中的任何 typescript 依赖项都不匹配。

【讨论】: