在 VSCode 侧边栏以树形展示前端项目(若依 RuoYi 等)的网页路由/菜单,点击节点直接打开对应源文件,实现「网页菜单 → 源码」一键跳转。
为什么需要
若依这类后台框架的业务页面路由是后端动态下发的(/getRouters 接口),src/router/index.js 里只写了登录、首页等少量静态路由。开发时找某个业务页面只能靠记忆或全局搜文件名,和网页菜单对不上。
本扩展直接调用你配置的接口,把网页菜单结构原样还原到编辑器侧边栏,标题取自后端菜单的 meta.title,点击即打开对应的 .vue。
适用于->
vue项目,并且是根据路由组件进行跳转的vue项目,原理是根据请求后端接口得到的json文件来书写列表
快速开始
-
npm/pnpm/...等先启动项目,在宿主窗口中打开你的前端项目
-
F5 调试(开发模式):用 VSCode 打开本项目 → 按
F5启动「扩展开发宿主」。 -
两种方式都可以:
- 控制台显示:
App running at:
- Local: http://localhost:80/
时候,baseURL为http://localhost:80/,这是用的nodejs转发的地址,也可以使用 2. 直接使用后端地址: 假设为http://localhost:8080 那么,baseURL为http://localhost:8080/
然后,填写以下三项并保存(保存后自动刷新):
配置项 示例值 说明 baseURL同上baseURL其实就是前端地址 endpoint/getRouters接口路径,默认即可 token(如果有)(从浏览器 cookie 复制) JWT。若依项目:登录后按 F12 → Application → Cookies → 复制 Admin-Token的值 -
侧边栏「页面路由」树即显示完整菜单;点击任意页面节点 → 打开对应
.vue。
配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
baseURL |
"" |
后端基础地址(必填) |
webBaseURL |
"" |
前端网页地址,用于「在浏览器中打开」,留空则用 baseURL |
endpoint |
/getRouters |
接口路径 |
token |
"" |
JWT;非空则自动加 Authorization: Bearer <token> |
extraHeaders |
{} |
额外请求头(JSON),如 {"X-Tenant-Id":"1"} |
viewsPrefix |
src/views/ |
component 相对路径的前置前缀,与接口返回的 component 拼接得到文件路径 |
fileExtension |
.vue |
component 无后缀时自动补 |
responseDataPath |
data |
路由数组在响应 JSON 中的点分路径,如 data 或 result.rows |
successCode |
200 |
响应中表示成功的 code 值 |
requestTimeoutMs |
10000 |
请求超时(毫秒) |
containerComponents |
["Layout","ParentView","InnerLink"] |
容器型 component 值,这类节点点击不打开文件 |
工作原理
baseURL + endpoint拼成请求 URL,带上Authorization头(若 token 非空)和extraHeaders,GET 请求。- 按
responseDataPath从响应取数组,递归解析。每个节点:- 标题取
meta.title(回退到name/path) component∈containerComponents(如Layout)→ 容器节点,只展开不打开component为字符串 → 文件节点,可点击component为空 → 目录节点
- 标题取
- 点击文件节点:
viewsPrefix + component(+ 自动补.vue)→ 工作区内相对路径 → 打开。找不到时依次尝试.vue/.js/.ts等后缀,仍失败则提示定位父目录。
兼容性
- 已针对若依 RuoYi-Vue 验证;通过调整
responseDataPath、viewsPrefix、successCode可适配其他返回类似菜单结构的项目。 - 零运行时依赖,使用 VSCode 内置全局
fetch(扩展宿主 Node 18+),不受浏览器 CORS 限制。
打包安装
npm install
npm run compile
npx @vscode/vsce package # 生成 .vsix
code --install-extension ruoyi-route-tree-0.0.1.vsix
安全提示
token 会以明文存储在 VSCode 的 settings.json 中。建议把配置放在工作区的 .vscode/settings.json(已加入 .gitignore 习惯),避免提交到仓库。