Yarn本身并没有直接提供一个命令来查看node_modules
中的某个依赖包是由package.json
中的哪个包直接或间接引入的。
但是,你可以通过一些间接的方式来获取这些信息:
-
手动检查:
- 打开
node_modules
中你想查询的依赖包的package.json
文件,查看它的name
字段确认包名。 - 然后回到你的项目根目录,检查
package.json
中的dependencies
和devDependencies
(也可能在peerDependencies
,optionalDependencies
中)字段,看是否有直接引用这个包的条目。 - 如果直接依赖中没有找到,那这个包可能是作为其他依赖的依赖被引入的。这时需要逐个检查直接依赖的
package.json
(可以在它们的node_modules
里找),看看是否间接引用了该包。
- 打开
-
使用第三方工具:
-
madge
: 是一个可以生成模块依赖图的工具,它可以帮助你可视化地了解项目依赖关系。安装并使用madge
如下:npm install -g madge madge --circular --image ./dependencyGraph.png .
这会生成一个依赖关系图,你可以从中看到哪些包依赖于你感兴趣的包。
-
depcheck
: 另一个工具,它可以检查node_modules
中的未使用或冗余的依赖。
虽然它主要目的是找出未被使用的依赖,但通过其报告,你也能间接了解到哪些包正在使用特定依赖。npm install -g depcheck depcheck
-
-
使用Yarn的
why
命令:
虽然yarn why
主要用于解释为什么一个包被安装或存在,但它也可以间接告诉你哪个包直接或间接依赖于另一个包。使用方式如下:yarn why <package-name>
这个命令会展示出为什么
<package-name>
被安装,包括哪些直接或间接依赖于它的包。
综上所述,虽然直接查看依赖关系的详细链路不是Yarn直接提供的功能,但通过上述方法,你可以一定程度上追踪到某个包的来源。
标签:node,包是,依赖,package,modules,json,间接 From: https://www.cnblogs.com/longmo666/p/18232814