PathIntellisense真正生效的信号是在import、src=等引号内输入./或../后立即弹出非空路径候选列表;若无反应,需检查是否通过Open Folder打开项目、右下角语言模式是否为JavaScript/TypeScript、是否禁用冲突插件。

PathIntellisense 不是“装上就灵”的插件,它默认能用,但多数人卡在“补全不出现”或“补全错目录”——问题几乎都出在工作区识别、语言模式和配置冲突这三处,而不是插件本身。
怎么确认 PathIntellisense 真正生效了
别只看插件列表里有没有打勾。真正生效的信号是:在 import、src=、href= 或 url() 的引号内输入 ./ 或 ../ 后,立刻弹出路径候选列表(不是空的,也不是只显示当前文件名)。如果没反应,优先检查:
- VSCode 是通过 File > Open Folder 打开整个项目文件夹的,不是双击单个
.js文件(否则${workspaceFolder}无法解析) - 右下角状态栏显示的语言模式是
JavaScript或TypeScript,不是Plain Text(点一下切换) - 禁用
Auto Import、ES7+ React/Redux snippets这类会劫持import行的插件,临时验证是否冲突
为什么 alias(比如 @/components)补全不了
PathIntellisense 默认不读取 tsconfig.json 或 jsconfig.json 里的 baseUrl 和 paths,必须显式告诉它配置在哪。常见错误是只配了映射却漏了 tsconfig 指向:
- 在
settings.json中加这两项(缺一不可):"path-intellisense.mappings": { "@": "${workspaceFolder}/src" },<br>"path-intellisense.tsconfig": "${workspaceFolder}/tsconfig.json" - 如果项目用的是
jsconfig.json(如纯 React),把第二行改成"${workspaceFolder}/jsconfig.json" - 确保
tsconfig.json里compilerOptions.baseUrl是相对路径(如"./"),不是绝对路径或空字符串
补全列表里为啥没有 node_modules 下的包
这是默认行为,不是 bug。PathIntellisense 主动跳过 node_modules、.git 等目录,避免干扰。如果你确实需要补全已安装的包名(比如 import { debounce } from 'lodash'),得手动启用:
- 在设置中搜索
path-intellisense.includeNodeModules - 勾选它,或在
settings.json加一行:"path-intellisense.includeNodeModules": true
- 注意:开启后补全列表会变长,且不校验包是否导出对应成员(那是 TypeScript 语言服务的事)
原生补全和 PathIntellisense 能共存吗
能,但会打架。VSCode 1.70+ 自带的路径补全(javascript.suggest.paths 和 typescript.suggest.paths)和 PathIntellisense 会同时触发,导致下拉列表重复、顺序混乱,甚至 alias 补全失效。最干净的做法是关掉原生的:
- 在
settings.json加两行:"javascript.suggest.paths": false,<br>"typescript.suggest.paths": false
- 这个关闭只影响路径建议,不影响 import 补全、类型提示等其他语言功能
- 关掉之后,所有路径逻辑都由 PathIntellisense 统一接管,响应更快、行为更可控
Alias 补全依赖映射配置与 tsconfig/jsconfig 的双重对齐,而工作区未正确加载时,${workspaceFolder} 会变成空字符串——这种细节不会报错,只会让补全静默失效。动手前先盯一眼左下角的文件夹名和右下角的语言模式,比反复重装插件有用得多。











