auto import 默认不生效,需手动配置 tsconfig.json 的 baseurl 和 paths 才能解析别名路径;仅识别模块级导出项,js 文件需安装 typescript nightly 扩展,且须确保 tsconfig 被正确识别。

Auto Import 能自动补全 import 语句,但默认不生效?
它不是“装完就用”的傻瓜插件。TypeScript 项目里,Auto Import 依赖 jsconfig.json 或 tsconfig.json 中的 "baseUrl" 和 "paths" 配置才能正确解析别名路径(比如 @/components/Button)。否则它只认 ./ 和 ../ 开头的相对路径。
- 如果你用了 Vite 或 Next.js,默认没配
baseUrl,得手动加:{ "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["src/*"] } } } - 它不会自动导入未被
export的内部函数或变量,只识别模块级导出项; - 在 JS 文件中启用需确保已安装
JavaScript and TypeScript Nightly扩展,否则类型推导会失效; - 按
Ctrl+.触发建议时,如果弹出空白或只有全局变量,大概率是 tsconfig 未被识别——试试在 VS Code 命令面板运行Typescript: Select TypeScript Version切到 workspace 版本。
json2ts 粘贴 JSON 就生成接口,但生成的类型常不准
它把 {"id": 1, "name": "foo"} 固定转成 id: number; name: string,但真实 API 返回可能是 id?: number 或 name: string | null。尤其遇到可选字段、联合类型、嵌套数组时,生成结果基本要手修。
- 复制的是 Swagger/OpenAPI 的 JSON Schema?别用
json2ts,改用quicktypeCLI 或在线工具更稳; - 如果只是临时调试,粘贴后立刻检查是否有
undefined字段——json2ts默认全设为必填; - 快捷键
Ctrl+Alt+V仅对纯 JSON 文本有效;若剪贴板含换行缩进混乱或带注释,会直接报错; - 它不支持从 URL 自动 fetch 并转换(虽然文档写了“支持 URL”,实测 2026.3 版本仅限本地 JSON 字符串)。
Todo Tree 找不到你的 // TODO?先看它搜哪几个文件
默认只扫描 .js、.ts、.html、.css 等常见后缀,如果你在 .vue、.svelte 或自定义配置文件(如 .eslintrc.cjs)里写了 // FIXME,它压根不扫。
- 打开设置,搜
todo-tree.general.tags,可追加"FIXME"、"HACK"; - 关键配置是
todo-tree.general.files,改成*<em>/</em>.{js,ts,jsx,tsx,vue,svelte,py,go}才能覆盖主流语言; - 它不识别单行块注释
/<em> TODO </em>/,只认行首或行中带//的写法; - 如果项目用了 pnpm + 硬链接,某些符号链接目录可能被跳过——这时得在
todo-tree.filtering.excludeGlobs里显式排除node_modules,否则反而卡死。
Bracket Pair Colorizer 2 颜色乱了,或者括号不配对高亮
这不是 bug,是它和 VS Code 原生的 editor.guides.bracketPairs 渲染层打架。VS Code 1.85+ 内置了括号引导线,而 Bracket Pair Colorizer 2 还在叠自己的颜色逻辑,结果导致嵌套深时颜色错位、光标悬停无响应。
- 最简解法:关掉原生功能,在设置里把
editor.guides.bracketPairs设为false; - 它的配色方案存在层级上限(默认只支持 6 层),超过的部分会循环复用第一种颜色——不是失效,是设计如此;
- 如果你在 JSX 或 Vue SFC 的
<template></template>里发现标签不配对,说明没启用enableCustomBracketsSupport,得手动加:"bracketPairColorizer2.enableCustomBracketsSupport": true
- 不要同时装
Bracket Pair Colorizer和Bracket Pair Colorizer 2,后者会静默禁用前者,但残留配置可能引发冲突。
真正难的从来不是装插件,是搞清它在哪一层起作用、又在哪一层被覆盖。比如 Prettier 格式化失败,90% 是因为 editor.defaultFormatter 被 ESLint 扩展劫持了;再比如 Live Server 刷新异常,往往卡在 Chrome 的缓存策略而非插件本身。插件只是杠杆,支点永远在你自己配的那几行 JSON 里。











