分析 Vue 项目的组件依赖关系,从入口文件(main.js/main.ts/App.vue)开始递归分析,生成完整的组件层级关系图。
<template> 中的组件引用import 语句中的组件依赖components 选项中注册的组件text
📦 App (src/App.vue)
├── 📁 components/
│ ├── 📄 Header (src/components/Header.vue)
│ │ ├── props: title(String), showLogo(Boolean)
│ │ └── 📄 UserAvatar (src/components/UserAvatar.vue)
│ │ └── props: src(String), size(Number)
│ └── 📄 Sidebar (src/components/Sidebar.vue)
│ └── props: menuItems(Array), collapsed(Boolean)
└── 📄 Footer (src/components/Footer.vue)
└── props: copyright(String)
json
{
"name": "App",
"path": "src/App.vue",
"props": [],
"children": [
{
"name": "Header",
"path": "src/components/Header.vue",
"props": [
{ "name": "title", "type": "String", "required": true },
{ "name": "showLogo", "type": "Boolean", "default": true }
],
"children": [...]
}
]
}
Rendering diagram...
分析当前 Vue 项目的组件结构:
components: { ComponentName } 选项import ComponentName from './path'<component-name> 和 <ComponentName> 标签<script setup> 语法import ComponentName from './path'<component :is="...">props: ['prop1', 'prop2'] 数组形式props: { prop1: String, prop2: { type: Object, required: true } } 对象形式(async)