Path Intellisense 默认忽略 node_modules 等目录以保障性能,需在 settings.json 中配置 path-intellisense.mappings 显式启用;monorepo 下需结合 includePackageJson、excludedItems 及 package.json 的 main/types 字段;.vue/.svelte 文件需手动添加至 path-intellisense.languages 列表。

Path Intellisense 插件不补全 node_modules 下的路径?
默认情况下,Path Intellisense 会忽略 node_modules、dist、build 等目录,这是有意为之的性能保护——遍历这些文件夹会导致补全卡顿甚至崩溃。
如果你确实需要补全第三方包内部路径(比如调试源码或写 jest mock),得手动放开限制:
- 打开 VSCode 设置(
Ctrl+,或Cmd+,),搜索path-intellisense.mappings - 在
settings.json中添加映射:"path-intellisense.mappings": { "node_modules": "${workspaceFolder}/node_modules" } - ⚠️ 注意:不要写成
"node_modules": "${workspaceRoot}/node_modules"——${workspaceRoot}已被弃用,VSCode 1.85+ 会静默失效 - 改完后重启窗口或重载窗口(
Ctrl+Shift+P→Developer: Reload Window)
相对路径补全总从 src 开头,但项目是 monorepo 结构?
Path Intellisense 默认把 src 当作“根”,是因为它内置了常见前端项目约定。但在 lerna / pnpm workspace / turborepo 里,这个假设经常错位。
解决方式不是删插件,而是显式告诉它“哪里才是真正的模块起点”:
- 在项目根目录的
.vscode/settings.json中配置:"path-intellisense.includePackageJson": true, "path-intellisense.excludedItems": ["**/node_modules/**", "**/dist/**"]
- 关键一步:在每个 package 的
package.json里加"main"或"types"字段(哪怕只是占位),插件靠这个识别包边界 - 如果路径仍跳转不准,检查你是否在 import 语句里用了
../回退到 workspace 根——此时补全依赖当前文件所在目录,不是 package.json 位置
补全出来的路径带多余 ../ 或缺少 ./ 前缀?
这不是 bug,是插件对「导入上下文」的主动判断:它会根据当前文件和目标文件的层级关系,自动决定要不要加 ./,以及用几个 ../。
但有时判断出错,尤其在别名(alias)或自定义 resolver 场景下:
- 确认你没同时启用
JavaScript and TypeScript Nightly扩展——它自带路径补全逻辑,和Path Intellisense冲突,优先禁用后者 - 在
settings.json中强制统一前缀风格:"path-intellisense.autoSlashAfterDirectory": true, "path-intellisense.forceRelativePaths": true
- 如果用了
tsconfig.json的baseUrl+paths,Path Intellisense默认不读这些——必须额外装Typescript Import Sorter或切换到官方 TS 补全(关掉本插件)
为什么在 .vue 或 .svelte 文件里路径补全失效?
因为 Path Intellisense 默认只激活在 javascript、typescript、json 等语言模式下,vue 和 svelte 不在白名单里。
补全不是“坏了”,是压根没启动:
- 打开设置,搜
path-intellisense.languages,编辑 JSON:"path-intellisense.languages": [ "javascript", "typescript", "javascriptreact", "typescriptreact", "vue", "svelte" ]
- 注意大小写:必须是
"vue",不是"Vue"或"vue-html" - 如果用了
<script setup></script>语法,确保你的vue扩展(如 Volar)已启用,并且没禁用 TS 语言服务——否则路径补全是空壳


















