VSCode更新后纠错报错主因是语言服务、插件或配置未适配新版本;需检查ESLint/TS服务器状态、重置路径配置、修正Code Spell Checker词典设置、确认语言模式与Quick Fix触发条件。

VSCode 更新后纠错规则报错,基本不是你代码写错了,而是语言服务、插件或配置没跟上新版本的校验逻辑——尤其 ESLint、TypeScript、Prettier、Code Spell Checker 这几类工具在 1.102+ 后频繁调整默认行为和兼容边界。
ESLint 报错但代码能跑,或类型提示消失
这是典型的语言服务器未加载或解析路径失效。TS/JS 项目里红波浪线错位、Cannot find name 'React' 类错误反复出现,大概率不是依赖没装,而是 ESLint 或 TypeScript Server 没正确绑定到项目配置。
- 确认本地装了
eslint和@typescript-eslint/parser,且版本匹配:例如@typescript-eslint/parser@7.x不支持ESLint v9 - 检查
eslint.config.js是否显式声明了files和languageOptions.parserOptions.project;缺project字段,TS 类型检查就压根不触发 - 按
Ctrl+Shift+P运行TypeScript: Restart TS server,再运行ESLint: Restart ESLint Server - 关掉
javascript.validate.enable(VSCode 自带 JS 校验),它和 ESLint 冲突时会覆盖诊断结果
Code Spell Checker 报 “Unknown word.cSpell”
这不是拼写问题,是插件升级后词典加载机制变了。2.4.x 起强制要求 cSpell.language 必须是数组,且 cSpell.enabledLanguageIds 必须显式列出当前文件的语言 ID,否则连注释都不检查。
- 打开
settings.json,把"cSpell.language": "en, zh"改成"cSpell.language": ["en", "zh"] - 用
Ctrl+Shift+P → Developer: Inspect Editor Tokens and Scopes看当前文件真实Language ID(比如typescriptreact而非javascript),然后确保它在cSpell.enabledLanguageIds列表里 - 删掉
cSpell.enabledLanguageIds里的"*"—— 新版已弃用通配符,留着反而导致匹配失败 - 执行
Developer: Reload Window强制清缓存,旧词典不会自动更新
Prettier / Intelephense 报路径找不到或格式化失效
插件更新后常重置路径类配置项,而 Windows 用户尤其容易栽在反斜杠和 .exe 后缀上——路径一错,整个格式化链就断了。
- 搜设置项
prettier.path或php.validate.executablePath,确认值不为空、不指向已删除的目录 - Windows 下
php.validate.executablePath必须带.exe,推荐全用正斜杠:C:/php/php.exe比C:\php\php.exe更可靠 - 如果用了自定义 Prettier 配置(如
.prettierrc),检查是否含新版不支持的字段(如已废弃的tabWidth别名) - PHP 插件失效还可能因远端
~/.vscode-server版本和本地不一致,需在服务器上rm -rf ~/.vscode-server后重连
Ctrl+. 快速修复弹窗空白或选项不符
这不是快捷键坏了,而是语言服务没响应,或光标根本没停在可诊断 token 上。VSCode 的 Quick Fix 完全依赖后端语言服务器返回结果,服务挂了、路径错了、甚至输入法开着,都会让它失灵。
- 光标必须严格落在波浪线下方的标识符内(如
useState的s上),停在.、空格、字符串里都无效 - 右下角状态栏点开看语言模式是不是
Plain Text或Unknown;手动切到TypeScript或对应语言 ID - 打开
Developer Tools → Console,搜Failed to start language client,有日志就说明服务根本没起来 - 中文输入法会吞
Ctrl+.,切英文输入法再试;或者改用命令面板输Quick Fix绕过快捷键
最易被忽略的一点:很多“报错”其实来自多个插件叠加影响——比如 ESLint 报 warning,但没装 esbenp.vscode-eslint 或没开 eslint.codeAction.showDocumentation,它就不会进 Ctrl+. 菜单。别只盯着一个配置改,先确认哪个插件真正负责这条诊断。


















