Skills vue-component-analyzer
分析 Vue 前端项目的组件依赖关系,从入口文件开始递归分析所有组件,生成组件层级关系图。支持 Vue 2 和 Vue 3 项目,输出包含组件名称、文件路径和所需属性。使用当用户需要分析 Vue 组件结构、排查组件依赖关系或理解项目架构时。
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/baozaibuding/vue-component-analyzer" ~/.claude/skills/openclaw-skills-vue-component-analyzer && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/baozaibuding/vue-component-analyzer" ~/.openclaw/skills/openclaw-skills-vue-component-analyzer && rm -rf "$T"
manifest:
skills/baozaibuding/vue-component-analyzer/SKILL.mdsource content
Vue 组件依赖分析器
功能概述
分析 Vue 项目的组件依赖关系,从入口文件(main.js/main.ts/App.vue)开始递归分析,生成完整的组件层级关系图。
支持特性
- Vue 2 和 Vue 3 项目兼容
- 支持 Options API 和 Composition API
- 识别组件名称、文件路径、props 属性
- 多种输出格式:Markdown 树形、JSON、Mermaid 图表
分析流程
-
定位入口文件
- 查找 main.js / main.ts / app.js / app.ts
- 定位根组件 App.vue
-
递归分析组件
- 解析
中的组件引用<template> - 提取
语句中的组件依赖import - 识别
选项中注册的组件components - 递归分析子组件
- 解析
-
提取组件信息
- 组件名称(name 属性或文件名)
- 组件文件绝对/相对路径
- Props 定义(名称、类型、是否必填、默认值)
-
生成输出
- Markdown 树形结构
- JSON 结构化数据
- Mermaid 流程图
输出格式
1. Markdown 树形结构
📦 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)
2. 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": [...] } ] }
3. Mermaid 图表
graph TD A[App<br/>src/App.vue] --> B[Header<br/>src/components/Header.vue] A --> C[Sidebar<br/>src/components/Sidebar.vue] B --> D[UserAvatar<br/>src/components/UserAvatar.vue] A --> E[Footer<br/>src/components/Footer.vue]
使用方法
分析当前 Vue 项目的组件结构:
- 确定项目根目录
- 查找入口文件和根组件
- 递归分析所有组件依赖
- 生成三种格式的分析报告
组件识别规则
Vue 2
- 识别
选项components: { ComponentName } - 解析
import ComponentName from './path' - 识别
和<component-name>
标签<ComponentName>
Vue 3
- 支持
语法<script setup> - 识别
import ComponentName from './path' - 解析动态组件
<component :is="...">
Props 提取
- 识别
数组形式props: ['prop1', 'prop2'] - 解析
对象形式props: { prop1: String, prop2: { type: Object, required: true } } - 支持 TypeScript 类型定义
注意事项
- 忽略第三方库组件(如 Element UI、Ant Design Vue)
- 处理循环依赖(A 引用 B,B 引用 A)
- 支持别名路径解析(@/components/...)
- 异步组件标记为
(async)