拿到陌生项目,先别急着逐行读代码。花 5 分钟 把目录骨架理清楚,后续定位逻辑会快十倍。
第一步:看“门脸”(根目录)
- README.md:先看怎么安装、怎么启动、有没有已知的坑(这行字能省你半天时间)。
- package.json / pom.xml / go.mod / requirements.txt:一眼扫出技术栈(Vue 还是 React、Spring 还是 Django)和核心依赖。
- .env / config/:看有几个运行环境,接口地址和数据库配置在哪改。
第二步:认“内脏”(src 源码层)
业务代码基本遵循 “入口 → 路由 → 页面 → 组件 → 服务 → 工具” 的流向。不管目录名叫什么,认准这 6 种职责即可:
| 常见目录名 | 实际职责 | 快速定位法 |
|---|---|---|
| main.js / App.vue / App.tsx | 应用入口 | 看注册了哪些全局插件、拦截器、基础样式 |
| views / pages / screens | 页面级代码 | 一个文件通常对应一个 URL 路由 |
| components / widgets | 通用组件 | 按钮、表格、弹窗等复用件 |
| services / api / apis | 接口层 | 所有后端请求都在这里封装,搜 /api/ 就能找到 |
| store / stores / hooks | 状态管理 | 跨页面共享的数据(用户信息、权限、购物车) |
| utils / common / helpers | 工具函数 | 日期格式化、正则校验、请求拦截等 |
| assets / styles / static | 静态资源 | 图片、图标、全局 CSS 变量 |
第三步:摸“骨架”(配置文件)
- vite.config.js / webpack.config.js / vue.config.js:重点看路径别名(如
@/指向src/还是src/renderer/)和代理配置(/api转发到哪)。 - tsconfig.json:看路径映射(
paths)和严格模式开关,避免刚写代码就报一堆类型错误。
老手技巧:请求追踪法
不要死背目录。打开浏览器 F12,找一个真实接口(例如 GET /api/order/list),全局搜索(Ctrl+Shift+F)这个路径。它一定出现在 services/ 或 api/ 里,顺着调用链路往回摸,就能找到对应的页面组件和状态管理,比看十遍目录都管用。
避坑提醒
- 不要纠结
utils和helpers有什么区别,不同团队命名习惯不同,先认路,再适应。 - 如果根目录下有
packages/且存在多个package.json,说明是 Monorepo 多包工程,只看与你当前任务相关的那个包,别一头扎进公共库。