VSCode代码检查需插件+项目配置协同生效;必须打开项目根目录、本地安装ESLint并生成配置、协调ESLint与Prettier规则;拼写检查默认不查标识符;LSP依赖语言特异性配置且需重启生效。

VSCode 本身不自动检查代码一致性,必须靠插件+项目配置协同生效;没配对配置文件、没装对依赖、没打开正确设置,插件就是摆设。
ESLint 插件不标红?先确认这三件事
ESLint 插件静默失效最常见原因不是插件坏了,而是它根本没加载到项目规则。
- 右键命令面板(Ctrl+Shift+P),输入
Developer: Toggle Developer Tools,看 Console 里有没有报Cannot find module 'eslint'或No ESLint configuration found—— 有就说明路径或配置缺失 - 确保 VSCode 当前打开的是**项目根目录文件夹**,不是子文件夹(比如打开了
src/而不是整个项目);否则插件找不到node_modules/eslint和.eslintrc.cjs - 本地安装 ESLint:
npm install --save-dev eslint(别用-g全局安装),再运行npx eslint --init生成配置文件;手动新建空.eslintrc.js容易漏 parser 或 env 配置
保存时自动修复但格式错乱?ESLint 和 Prettier 正在打架
两者都管缩进、引号、分号,不协调就会反复格式化、波浪线不消失、甚至把 const a = 1; 改成 const a = 1 ;。
- 必须安装
eslint-config-prettier并在.eslintrc.cjs的extends中放在最后:["eslint:recommended", "plugin:prettier/recommended"] -
.prettierrc必须存在且内容合法(纯 JSON 或 JS 导出,不能带注释);路径必须是项目根目录 - VSCode 设置里只开
"source.fixAll.eslint": true,**禁用**"source.fixAll.prettier";Prettier 应仅作为 formatter,不参与 lint 修复逻辑
拼写检查只标红注释不标变量名?这不是 bug,是设计
Code Spell Checker 默认跳过标识符(变量、函数、类名),只查字符串字面量、注释和 Markdown 文本——因为技术词太多,全查会满屏误报。
- 想让中文注释不被误标:在
settings.json加"cSpell.language": ["en", "zh-cn"]和"cSpell.allowCompoundWords": true - 项目专属词(如
zustand、vitepress)要加进项目级.cspell.json的words字段,别点「添加到用户词典」——那会污染所有项目 - CI 环境里插件完全不工作,必须用 CLI:
npx cspell --no-progress "**/*.{js,ts,md}" --ignore="node_modules/**"
多语言项目里 Python/TS 检查全失效?LSP 启动条件没满足
不同语言的 LSP(语言服务器)启动逻辑差异大,一个环节卡住,整个检查链就断了。
- TypeScript:除了装
ESLint插件,还必须本地装@typescript-eslint/parser和@typescript-eslint/eslint-plugin,并在配置中显式指定parser: '@typescript-eslint/parser' - Python:如果用
pylint,需在.pylintrc里配init-hook='import sys; sys.path.append("./src")';如果用ruff,得在pyproject.toml的[tool.ruff]下写src = ["src"] - 所有 LSP 类插件(包括 ESLint、Rust Analyzer)装完后务必重启 VSCode——它们不支持热重载,改了 settings.json 尤其要重启
真正容易被忽略的是:VSCode 的检查行为永远以项目根目录为边界,不是以你当前编辑的文件位置为准。哪怕只差一层目录,node_modules 找不到、配置文件读不到、LSP 就不会加载——所有“不生效”的背后,八成是这个路径问题。


















