以下是查看前端项目依赖树型结构关系图的详细方法,涵盖 命令行工具 和 可视化工具:
一、命令行工具生成依赖树
1. npm
# 查看项目依赖树(文本形式)
npm ls# 查看指定包的依赖树
npm ls <package-name># 生成JSON格式的依赖树(可后续转换为可视化图表)
npm ls --json > dependencies.json
2. yarn
# 查看依赖树(文本形式)
yarn list# 查看指定包的依赖树
yarn list <package-name># 生成JSON格式的依赖树
yarn为什么安装某个包(解释依赖路径):
yarn why <package-name>
3. pnpm
# 查看依赖树(文本形式)
pnpm ls# 查看指定包的依赖树
pnpm ls <package-name># 生成JSON格式的依赖树
pnpm ls --json > dependencies.json
二、可视化工具生成依赖树
1. npm包:madge
-
安装:
npm install -g madge
-
生成图表:
madge --jsonp ./node_modules | madge --image dependencies.png
-
支持格式:PNG、SVG、DOT、JSON。
2. npm包:depcheck
-
安装:
npm install -g depcheck
-
生成依赖分析报告:
depcheck --unused --duplicates
-
功能:检测未使用的依赖、重复依赖,并输出文本报告。
3. npm包:npm dep-graph
-
安装:
npm install -g dep-graph
-
生成图表:
dep-graph --file dependencies.dot dot -Tpng dependencies.dot -o dependencies.png
-
依赖:需安装
graphviz
工具(用于转换DOT文件为图片)。
4. 在线工具:Dependabot
- 使用步骤:
- 将
package.json
或yarn.lock
文件上传到 Dependabot。 - 自动生成依赖关系图并分析版本更新。
- 将
5. IDE集成工具
- VS Code插件:
- Dependents:显示文件的依赖关系。
- npm Dependency Graph:可视化依赖树。
三、高级用法与注意事项
1. 过滤依赖层级
# 限制显示层级(如只显示3层)
npm ls --depth=3
2. 排查版本冲突
- npm/yarn/pnpm:
# 查看指定包的版本冲突路径 npm why <package-name> # 仅npm支持 yarn why <package-name>
3. 生成交互式图表
- 工具:
bundlephobia
- 访问 BundlePhobia。
- 输入包名和版本,查看依赖树及打包体积分析。
4. 处理大型项目
- 优化命令:
# 过滤非必要包(如devDependencies) npm ls --production
四、依赖树示例(文本形式)
$ npm ls react
your-project@1.0.0 /path/to/project
└─┬ react@18.2.0├─┬ react-dom@18.2.0│ └── react@18.2.0 deduped└─┬ react-router-dom@6.16.0└── react@18.2.0 deduped
五、总结
工具/方法 | 适用场景 | 输出形式 |
---|---|---|
npm/yarn/pnpm ls | 快速查看文本依赖树 | 终端文本 |
madge | 生成图片格式的依赖关系图 | PNG/SVG |
depcheck | 分析未使用依赖和重复依赖 | 终端文本报告 |
Dependabot | 在线分析依赖版本与冲突 | 交互式网页图表 |
npm why | 排查指定包的安装原因 | 终端路径解释 |
通过上述方法,可以清晰地查看依赖关系、排查版本冲突,并优化项目依赖管理。