Skill: include5943/uniapp-vue-analyzer (version 2.0.0)

--- name: uniapp-vue-analyzer display_name: "uniapp-vue项目分析器" author: include description: "智能分析 uni-app 和 Vue 项目，量化技术债务，发现代码隐患，自动生成项目分析报告。当用户需要分析 Vue 2/3、uni-app 项目结构、检查代码质量、评估技术债务、生成项目文档时使用。不适用于 React、Angular、Svelte、Python、Java、原生小程序或其他非 Vue 技术栈项目。" description_zh: "智能分析 uni-app 和 Vue 项目，量化技术债务，发现代码隐患，自动生成项目分析报告。当用户需要分析 Vue 2/3、uni-app 项目结构、检查代码质量、评估技术债务、生成项目文档时使用。不适用于 React、Angular、Svelte、Python、Java、原生小程序或其他非 Vue 技术栈项目。" description_en: "Intelligently analyze uni-app and Vue projects, quantify technical debt, detect code issues, auto-generate project analysis reports. Use when analyzing Vue 2/3 or uni-app project structure, checking code quality, evaluating technical debt, or generating project documentation. Do NOT use for React, Angular, Svelte, Python, Java, native mini-programs, or non-Vue projects." version: 2.0.0 keywords: - vue - uniapp - uni-app - analyzer - analysis - vue2 - vue3 - technical-debt - project-analysis categories: - development - analysis triggers: - 分析 uni-app 项目 - 分析 Vue 项目 - 检查代码质量 - 技术债务 - 项目结构 - uniapp - vue 项目分析 - 代码审计 - project analyzer - vue quality - technical debt platforms: - windows - linux - macos --- # uniapp-vue-analyzer 使用指南 ## 功能概述 本 Skill 提供完整的 uni-app 和 Vue 项目分析能力，无需预装任何脚本。AI 将根据以下指南动态分析目标项目。 --- ## 分析流程 ### Phase 1: 项目识别 1. **定位项目根目录** - 查找 `package.json`、`manifest.json`、`pages.json` 等特征文件 - uni-app 项目必有 `manifest.json` - Vue 项目必有 `package.json` 2. **判断项目类型** - **uni-app**: 存在 `manifest.json` + `pages.json` - **Vue 2**: `vue-template-compiler` in package.json - **Vue 3**: `@vue/compiler-sfc` in package.json 3. **检测目录结构** ``` 常见目录（按优先级）： ├── pages/ # 页面 ├── components/ # 组件 ├── static/ # 静态资源 ├── common/ 或 utils/ # 工具函数 ├── mixins/ # 混入 ├── pages-*/ # uni-app 多端页面 ├── uni_modules/ # uni-app 插件 └── store/ 或 vuex/ # 状态管理 ``` ### Phase 2: 配置文件分析 #### uni-app 项目必须分析 | 文件 | 分析内容 | |------|---------| | `manifest.json` | appid、名称、平台配置 | | `pages.json` | 页面路由、tabBar、分包配置 | | `package.json` | 依赖、脚本命令 | | `uni.scss` | 全局样式变量 | #### Vue 项目必须分析 | 文件 | 分析内容 | |------|---------| | `package.json` | 依赖、版本、构建脚本 | | `vue.config.js` | 构建配置 | | `.eslintrc.js` | ESLint 规则 | | `babel.config.js` | 转译配置 | ### Phase 3: 代码质量评估 #### Vue 语法检查清单 **Vue2 → Vue3 迁移问题** | 检查项 | Vue2 写法 | Vue3 应改为 | |--------|----------|------------| | 生命周期 | `destroyed` | `unmounted` | | 生命周期 | `beforeDestroy` | `beforeUnmount` | | 全局 API | `new Vue()` | `createApp()` | | 原型挂载 | `Vue.prototype` | `app.config.globalProperties` | | 插件安装 | `Vue.use()` | `app.use()` | | v-model | `v-model="value"` | `v-model="modelValue"` | | v-model | `@input` | `@update:modelValue` | | 插槽 | `slot="xxx"` | `v-slot:xxx` 或 `#xxx` | | 事件 | `.sync` 修饰符 | `v-model:xxx` | | 样式 | `/deep/` | `:deep()` | | 响应式 | `Vue.observable` | `reactive` / `ref` | | 状态管理 | Vuex | Pinia | **uni-app 特有检查** | 检查项 | 说明 | |--------|------| | 页面生命周期 | `onUnload` 仍支持，无需修改 | | `onShow`/`onHide` | uni-app 独有，正常使用 | | `uni.` API | 平台兼容性检查 | | `nvue` 文件 | 原生渲染页面 | #### 代码模式识别 **技术债务标记** | 模式 | 扣分 | 说明 | |------|------|------| | `var` 声明 | -2/处 | 应使用 let/const | | 长函数 >100行 | -5/个 | 建议拆分 | | 深层嵌套 >4层 | -3/处 | 建议重构 | | 硬编码值 | -1/处 | 应提取为常量 | | 未使用的导入 | -0.5/个 | 清理代码 | | `console.log` | -0.5/个 | 生产环境应移除 | | `TODO` / `FIXME` | -1/个 | 遗留任务 | **设计模式识别** | 模式 | 识别特征 | |------|---------| | 单例模式 | `getInstance()` 或 `static get instance` | | 工厂模式 | `create*()` 或 `factory` | | 观察者模式 | `on()` / `off()` / `emit()` | | 模块模式 | `export default` 或 `export const` | ### Phase 4: 文件统计 1. **统计文件数量** - Vue 文件 (.vue) - JavaScript 文件 (.js, .jsx) - TypeScript 文件 (.ts, .tsx) - 样式文件 (.css, .scss, .less) 2. **统计代码行数** - 总行数 - 代码行数（排除空行和注释） - 注释行数 - 注释比例 3. **统计目录深度** - 最大嵌套层级 - 平均嵌套层级 ### Phase 5: 生成报告 #### 报告结构 ```markdown # 📊 [项目名称] 项目分析报告 生成时间: YYYY-MM-DD HH:mm:ss ## 1. 项目概览 | 项目 | 值 | |------|-----| | 项目类型 | uni-app / Vue 2 / Vue 3 | | 源码目录 | /path/to/src | | 总文件数 | N | | 总代码行数 | N | | 注释比例 | N% | ## 2. 技术栈 - **框架版本**: Vue X.X.X - **构建工具**: Vite / Webpack - **包管理器**: npm / yarn / pnpm ## 3. 项目结构 ``` [目录树，最大显示3层] ``` ## 4. 技术债务评分 | 指标 | 分数 | |------|------| | 代码规范 | X/20 | | 复杂度 | X/20 | | 安全性 | X/20 | | 可维护性 | X/20 | | Vue 迁移 | X/20 | | **总分** | **X/100** | 评分标准： - 90-100: 优秀 - 70-89: 良好 - 50-69: 一般 - <50: 需改进 ## 5. 发现的问题 ### 🔴 严重问题 | 问题 | 文件 | 建议 | |------|------|------| | ... | ... | ... | ### 🟡 中等问题 | 问题 | 文件 | 建议 | |------|------|------| | ... | ... | ... | ### 🟢 建议优化 | 问题 | 文件 | 建议 | |------|------|------| | ... | ... | ... | ## 6. Vue 迁移建议 [针对 Vue2 → Vue3 的具体建议] ## 7. 总结 [总体评价和改进建议] ``` --- ## 执行示例 ### 用户请求 ``` 分析 D:\projects\my-uniapp 项目 ``` ### AI 执行步骤 1. 读取 `D:\projects\my-uniapp\manifest.json` → 确定是 uni-app 项目 2. 读取 `D:\projects\my-uniapp\pages.json` → 获取页面结构 3. 遍历所有 .vue 文件 → 逐个检查语法 4. 统计代码行数和模式 → 计算技术债务 5. 生成完整报告 → 输出 Markdown 格式 --- ## 注意事项 1. **跳过自动生成的目录** - `node_modules/` - `unpackage/` - `uni_modules/` (第三方插件) - `.git/` - `dist/` - `build/` 2. **文件大小限制** - 单文件超过 1MB 时跳过详细分析 - 仅统计基本信息 3. **编码处理** - 优先使用 UTF-8 编码读取 - 遇到编码问题记录但不中断分析 4. **性能考虑** - 文件超过 500 个时，显示进度提示 - 使用并发读取提升速度 --- ## 输出格式 默认输出 Markdown 格式报告。如用户需要，可额外生成： - JSON 格式数据（便于程序处理） - HTML 格式（便于分享） - 中文/英文双语报告 --- *本 Skill 无需预装脚本，所有分析由 AI 动态执行*

path: skill.json
content: {
  "name": "uniapp-vue-analyzer",
  "display_name": "uniapp-vue项目分析器",
  "description": "智能分析 uni-app 和 Vue 项目，量化技术债务，发现代码隐患，自动生成项目分析报告。",
  "version": "2.0.0",
  "author": "include",
  "tags": ["vue", "uniapp", "analyzer", "analysis", "development"],
  "categories": ["development", "analysis"],
  "platforms": ["windows", "linux", "macos"],
  "entry_point": null,
  "requirements": [],
  "source": "clawhub"
}


path: _skillhub_meta.json
content: {
  "name": "uniapp-vue-analyzer",
  "display_name": "uniapp-vue项目分析器",
  "author": "include",
  "version": "2.0.0",
  "description": "智能分析 uni-app 和 Vue 项目，量化技术债务，发现代码隐患，自动生成项目分析报告。当用户需要分析 Vue 2/3、uni-app 项目结构、检查代码质量、评估技术债务、生成项目文档时使用。",
  "tags": ["vue", "uniapp", "analyzer", "analysis", "development", "technical-debt", "vue2", "vue3"],
  "categories": ["development", "analysis"],
  "platforms": ["windows", "linux", "macos"],
  "languages": ["zh-CN", "en-US"],
  "entry_point": null,
  "requirements": []
}


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector:  ()