problems面板为空是因为vscode不内置语法检查,仅聚合语言服务器或linter(如eslint、tsc、pylance)上报的诊断信息;需确保正确语言模式、项目配置文件存在、工作区以文件夹打开、文件被包含在配置路径中,并保存触发校验。

Problems面板为什么是空的
按 Ctrl+Shift+M 打开 Problems 面板却一片空白,不是快捷键失效,而是 VSCode 没收到任何诊断信息。它不内置语法检查,只做“聚合器”——必须有语言服务器或 Linter(如 ESLint、tsc、Pylance)在后台运行并上报问题,面板才有内容可显示。
- 右下角状态栏显示
Plain Text?点击它,手动选成JavaScript、TypeScript或Python - 项目根目录下没有
tsconfig.json(TS 项目)或.eslintrc.js(JS/TS),tsc和ESLint就不会启动校验 - VS Code 是以“文件夹”为工作区打开项目的;如果只双击单个
.js文件打开,扩展往往无法读取根目录配置,导致静默失效
F8 跳错误的前提是“已缓存”
F8(下一处)和 Shift+F8(上一处)只在当前文件已被语言服务解析过、且错误已进入诊断缓存后才有效。刚删掉一个括号但没保存,F8 可能跳不过去;按下 Ctrl+S 强制触发一次校验,再试就正常了。
- TS/JS 项目:确保
jsconfig.json或tsconfig.json的"include"字段覆盖当前文件路径(比如漏了"src/utils/**/*") - ESLint 报错残留?删掉项目根目录下的
.eslintcache文件,重启 VS Code - Python 报
Unable to import 'xxx'?点左下角 Python 图标,确认选的是带该包的虚拟环境解释器,不是系统 Python
悬停波浪线比 Problems 面板更及时
编辑器里红色/黄色波浪线下方的悬停提示,有时比 Problems 面板快半秒——因为它是语言服务器直接返回的原始诊断,没经过面板聚合过滤。尤其对刚键入的语法错误(比如少写了个 }),鼠标停上去立刻看到 Unexpected token,比切到面板再找更快。
- 悬停里出现
Quick Fix(灯泡图标)?按Ctrl+.直接调出修复菜单,比如自动补全import、重命名变量 - 悬停提示里带
typescript、eslint或pylint标签,说明来源明确;若只有Unknown,大概率是语言模式没识别对 - 某些插件(如
Code Spell Checker)只走悬停不报 Problems,拼写错误得靠这个看
终端报错和 Problems 面板不是一回事
运行 npm run build 后终端输出的错误,和 Problems 面板里的条目常不一致。前者是构建工具(Webpack/Vite)实际执行时的错误,后者是语言服务静态分析的结果。比如 Cannot find module 'lodash' 在终端里是运行时报,但在 Problems 面板中可能根本不出现在当前文件——因为 import 语句本身语法合法,只是模块解析失败,需靠 ESLint 的 import/no-unresolved 规则才能捕获。
- 终端报错带完整堆栈和行号?复制错误信息,用
Ctrl+P输入@problems再粘贴关键词,VS Code 会尝试匹配已有诊断 - Problems 面板里一堆
error TS2307?那是 TypeScript 编译器报的,说明tsconfig.json的"baseUrl"或"paths"配置有问题,和 ESLint 无关 - 同一行同时有红色(语法)和黄色(lint)波浪线?右键 →
Quick Fix通常优先给出 lint 建议,语法错误得先手动修括号或分号











