Go-to-component
在 Umi 项目中提供 routes.ts 与组件的双向跳转:
- 从
routes.ts 到目标组件文件(不存在则自动创建)
- 从组件文件到
routes.ts(定位到 component;不存在则在路由数组末尾追加)
- 点击
path 字符串,打开本地调试地址 urlBase + path
English version is provided below.
post:献给热爱这个世界和代码的你
功能
- 从
routes.ts 到组件
- 在
routes.ts 中右键 component 字符串,跳转到对应的目标文件(若不存在则创建空文件)。
- 识别两类写法:
- 目录形式:
@/pages/people-achieve/Detail → 跳转到 .../Detail/index.(tsx|ts|jsx|js)
- 文件形式:
@/pages/CaLock/Detail/MaintainIndex → 跳转到 .../Detail/MaintainIndex.(tsx|ts|jsx|js)
- 从组件到
routes.ts
- 在组件文件或资源管理器中右键“跳转到 routes.ts”,定位到对应的
component 字符串;如未存在则在 routes 数组末尾追加一个新路由对象。
- 快捷键:
Alt+Shift+R(编辑器聚焦时生效)。
- 点击
path 字符串打开浏览器
- 在
routes.ts 中点击 path: '/xxx',在默认浏览器中打开 urlBase + path。
安装
- 开发/调试:在 VS Code 中按 F5 运行“扩展宿主”。
- 本地安装:打包生成
.vsix 后,在扩展视图选择“从 VSIX 安装”。
- 推荐使用 Node
>= 20.18.1 与 @vscode/vsce:
nvm install 20.18.1 && nvm use 20.18.1
npm i -g @vscode/vsce
vsce package
使用
- 在
routes.ts 中:
- 右键
component 字符串 → 跳转到组件文件
- 右键
path 字符串 → 打开浏览器本地页面
- 直接点击字符串也可触发(链接高亮)
- 在组件文件或资源管理器中:
- 右键“跳转到 routes.ts” → 定位或追加路由对象
- 快捷键
Alt+Shift+R
命令
goToComponent.fromRoutes:跳转到组件文件(不存在则创建)
goToRoutes.fromComponent:从组件跳转到 routes.ts(不存在则追加)
openLocalUrl.fromPath:打开 urlBase + path
菜单与快捷键
- 编辑器右键:上述三条命令均可见
- 资源管理器右键:
goToRoutes.fromComponent
- 快捷键:
Alt+Shift+R(macOS/Windows 通用)
配置
goToComponent.root(默认 src):项目源码根
goToComponent.pagesDir(默认 pages):Umi pages 目录名
goToComponent.routesFile(默认 src/routes.ts):路由文件路径(建议在 Monorepo 显式设置为 packages/<pkg>/config/routes.ts)
goToComponent.urlBase(默认 http://localhost:8000/#):本地调试 URL 前缀
目录约定与兼容性
- Monorepo 包结构:
packages/<pkg>/config/routes.ts 与同级 src
- 当
routes.ts 位于 packages/<pkg>/config/ 时,自动选择同包的 src 作为解析基准;否则回退到工作区根的 src
- 兼容 Windows 与 macOS:内部使用
vscode.Uri 与 path/fs 处理路径,生成的组件标识与路由路径统一标准化为 POSIX 风格(/)
常见问题
vsce package 报错 File is not defined:升级到 Node >= 20.18.1 并使用 @vscode/vsce。
- 中文/空格路径:通过
Uri.fsPath 与 VS Code API 处理,无需额外设置。
English
This extension provides bidirectional navigation between Umi convention-based routes and components:
- From
routes.ts to component files (auto-create when missing)
- From component files back to
routes.ts (locate component, or append a new route when missing)
- Click
path to open urlBase + path in your browser
Postscript: Dedicated to you who love this world and code.
Features
- Recognize both directory and file style
component values
- Context menu in editor and explorer, plus
Alt+Shift+R shortcut
- Configurable paths and URL base
Commands
goToComponent.fromRoutes
goToRoutes.fromComponent
openLocalUrl.fromPath
Configuration
goToComponent.root, goToComponent.pagesDir, goToComponent.routesFile, goToComponent.urlBase
Packaging
- Use Node
>= 20.18.1
npm i -g @vscode/vsce
vsce package → install from VSIX in VS Code
作者:wuhao
© Go-to-component
| |