VSCode无法解析路径别名,90%是因为jsconfig.json或tsconfig.json未配对、未放项目根目录、未生效;它不读Webpack/Vite的alias,构建能运行≠编辑器能跳转。

VSCode 无法解析路径别名,90% 是因为 jsconfig.json 或 tsconfig.json 没配对、没放对位置、没生效。它和 Webpack/Vite 的 alias 配置是两套系统,构建能跑 ≠ 编辑器能跳转。
为什么 jsconfig.json 必须放在项目根目录
VSCode 的 TypeScript 语言服务只从工作区根目录向上查找 jsconfig.json 或 tsconfig.json。如果文件在 src/ 下或子目录里,直接被忽略。
- 错误做法:
src/jsconfig.json—— 完全不读 - 正确位置:
./jsconfig.json(即package.json同级) - 多根工作区时:每个文件夹需各自有配置,或用
./.vscode/settings.json指定"typescript.preferences.includePackageJsonAutoImports": "auto"辅助识别
baseUrl 和 paths 怎么写才不踩坑
baseUrl 是所有 paths 解析的起点,必须显式设为 "./";paths 的 key 必须带通配符 *,value 必须是数组且路径以 src/ 开头(不能是 ./src/ 或 src/* 少星号)。
- ✅ 正确:
"@/*": ["src/*"] - ❌ 错误:
"@/": ["src/"](缺少*,子目录如@/utils/foo不匹配) - ❌ 错误:
"@/*": ["./src/*"](./在paths中无效,会报“non-relative name”) - ⚠️ 注意:
baseUrl设为"."和"./"效果一致,但推荐用"./"避免某些旧版本解析异常
改完配置为什么还是跳转不了
VSCode 不会自动重载 TypeScript 服务,尤其在已有打开的 .ts/.js 文件时,旧缓存会持续干扰。
- 必须执行:
Ctrl+Shift+P→ 输入TypeScript: Restart TS Server(不是重启窗口) - 如果用了 Path Intellisense 插件,检查它是否启用了
"path-intellisense.mappings"—— 该配置会覆盖jsconfig.json,造成冲突 - 多人协作项目中,确认
gitignore没把jsconfig.json忽略掉;CI 环境虽不需要它,但本地开发必须存在 - Vue + Volar 用户注意:
vue-tsc和 Volar 的类型服务可能各自缓存,需同时重启 TS Server 和 Volar 插件
最常被忽略的一点:Vite 或 Webpack 的 resolve.alias 只影响运行时打包,而 VSCode 的路径解析完全依赖 jsconfig.json 或 tsconfig.json。两者必须手动保持一致,没有自动同步机制。



















