需结合代码引用分析与路由配置比对来识别废弃页面,优先确认vue和vue-router版本,区分静态声明与动态注册路由,再提取活跃路径并扫描.vue文件的显式引用。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要找出Vue项目中废弃的页面,需结合代码引用分析与路由配置比对,避免仅靠文件存在与否误判——有些页面虽未被路由注册,但可能被动态import或测试文件引用。
确认项目使用的Vue版本和路由方案
先执行 npm list vue vue-router 查看版本。Vue 2 + vue-router 3 和 Vue 3 + vue-router 4 的路由定义方式不同,影响后续路径提取逻辑。若项目混用 router.addRoute 动态注册或 pinia/pinia-plugin-persistedstate 等插件管理路由,静态扫描会漏检。
这一步不可跳过,【Vue 3 中 useRoute/useRouter 必须在 setup() 内调用,外部 import 的路由对象无法被常规 AST 工具捕获】。
提取所有已声明的路由路径
方法一:从 router/index.js 或 router/index.ts 入口文件入手
打开主路由文件,查找 createRouter({ routes: [...] }) 或 new Router({ routes: [...] }) 结构。复制所有 path 字符串(含通配符如 /user/:id、/admin/*),保存为 active-paths.txt。注意子路由嵌套时,children 数组里的 path 是相对路径,需拼接父级 path 后再写入。
方法二:使用正则批量提取(适用于无动态构造的项目)
在项目根目录运行:grep -r "path[[:space:]]*:[[:space:]]*['\"/]" src/router/ --include="*.js" --include="*.ts" | sed -E "s/.*path[[:space:]]*:[[:space:]]*(['\"])([^'\"]+).*//" | sort -u > active-paths.txt。该命令会漏掉模板字符串拼接的 path(如 path: \`${base}/list\`),此时必须回退到方法一人工核对。
递归分析 Vue 项目组件依赖,从入口文件生成组件层级图,支持 Vue 2/3,输出组件名、文件路径和属性。适用于分析组件结构、排查依赖或了解项目架构。
扫描所有 .vue 文件是否被显式引用
第一步:生成全量页面路径清单
执行 find src/views src/pages -name "*.vue" -not -path "*/__tests__/*" -not -path "*/components/*" | sed 's/src\///' | sed 's/\.vue$//' | sort > all-pages.txt。此命令假设页面集中在 src/views 或 src/pages,若项目使用 src/modules/**/page.vue 结构,需调整 find 路径。
第二步:检查每个页面是否出现在 JS/TS 文件的 import 语句中
对 all-pages.txt 中每一行(如 views/UserProfile),执行:grep -r "UserProfile" src/ --include="*.js" --include="*.ts" --include="*.vue" | grep -v "node_modules\|__tests__" | grep -q "import" && echo "✓ $line" || echo "✗ $line"。注意:Vue 3 的 defineAsyncComponent(() => import('./UserProfile.vue')) 会被捕获,但 import("./UserProfile.vue") 动态导入需额外处理——此时需启用 ESLint 插件 eslint-plugin-import 配合自定义规则扫描。
第三步:过滤出未被任何 import 引用、且不在 active-paths.txt 中的页面
运行:comm -23 unused-pages.txt。这一步输出即为高置信度废弃页面候选列表。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










