
VS Code 里 import 路径标红、Ctrl+点击跳转失效、重命名不联动 —— 这不是文件真丢了,是语言服务压根没认出你的路径规则。 根本原因几乎总是 jsconfig.json 或 tsconfig.json 缺失、错配,或插件没配对。运行时能跑通 ≠ 编辑器能解析,这两套系统完全独立。
为什么 @/xxx 导入总报 Cannot find module
VS Code 的 TypeScript/JavaScript 语言服务不会自动读取 Webpack/Vite 的 resolve.alias,它只认自己的配置文件。即使你项目里已用 Vite 配了 @ 指向 src,VS Code 仍会报错,除非它自己也“知道”这个映射。
检查项目根目录(即你通过「File → Open Folder」打开的文件夹)是否存在 jsconfig.json 或 tsconfig.json若不存在,新建一个 jsconfig.json,内容至少包含:{"compilerOptions": {"baseUrl": ".", "paths": {"@/*": ["src/*"]}}}确保 src 是真实存在的子目录名,大小写必须完全一致(Windows 上容易忽略这点)改完后必须执行「Command Palette → Developer: Restart Language Server」,否则缓存不刷新,改了等于白改
path-intellisense 插件配置不生效的常见卡点
这个插件只负责路径补全和显示,不参与模块解析;它和语言服务是两套逻辑。如果只装插件不配 jsconfig.json,它可能连 @ 都不识别。
在 settings.json 中添加:"path-intellisense.mappings": { "@": "${workspaceRoot}/src" }${workspaceRoot} 是 VS Code 内置变量,指向你当前打开的工作区根目录,不能手写成 ./src 或绝对路径如果项目是多根工作区(Multi-root Workspace),${workspaceRoot} 可能不准确,此时应改用 ${workspaceFolder} 并确认对应文件夹结构插件默认不自动补全扩展名,如需导入时带 .vue 或 .ts,加配置:"path-intellisense.extensionOnImport": true
ESLint 和路径提示冲突?其实是同一根源
ESLint 报 import/no-unresolved 错误,或者根本没提示,往往和路径解析失败同源。它依赖 ESLint 自己的解析器(比如 eslint-import-resolver-node 或 eslint-import-resolver-typescript)去查路径,而这些解析器默认也不读 jsconfig.json 的 paths。
如果你用的是 eslint-import-resolver-typescript,它会自动读取 tsconfig.json;但对 jsconfig.json 支持不稳定,建议统一用 tsconfig.json(哪怕纯 JS 项目)如果是 eslint-import-resolver-node,它根本不支持 paths,必须换 resolver 或手动配 settings:"import/resolver": { "node": { "paths": ["src"], "extensions": [".js", ".ts", ".vue"] } }别忘了检查 eslint.nodePath 是否指向正确的全局 ESLint 安装位置,否则整个 ESLint 扩展可能静默失效
最常被忽略的一点:所有配置都改完后,必须重启语言服务或整个窗口 —— VS Code 不会热重载 jsconfig.json 或插件映射。缓存不清理,再准的配置也白搭。

评论(0)