ESLint配置后不标红,主因是eslint.validate未包含对应语言模式或parserOptions不匹配:需显式添加"javascriptreact""typescript"等模式,ecmaVersion须与语法一致,TS项目必须用@typescript-eslint/parser并配parser字段。

ESLint 配置后仍不标红?检查 eslint.validate 和 parserOptions
常见现象是装了 ESLint 插件、写了 .eslintrc.cjs,但 JS 文件里写 console.log 或未定义变量就是不报错。根本原因通常是 VS Code 没把 JS 文件纳入校验范围,或解析器不匹配。
-
eslint.validate默认只校验javascript,但如果你用的是javascriptreact(如 .jsx)或typescript,必须显式添加:"eslint.validate": ["javascript", "javascriptreact", "typescript"] -
parserOptions.ecmaVersion要和项目实际语法一致。比如用了可选链a?.b却配成ecmaVersion: 2015,规则就失效 - TS 项目务必确认已安装
@typescript-eslint/parser,且parser字段指向它,而非默认的espree
Prettier 和 ESLint 冲突导致格式化后反而报错
典型表现:保存时代码被 Prettier 格式化,但紧接着 ESLint 报出 semi、quotes 等错误 —— 说明两者规则没对齐,Prettier 改了,ESLint 还在按旧规则检查。
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- 必须安装
eslint-config-prettier并在extends末尾追加:["eslint:recommended", "prettier"](顺序不能反) -
prettier的配置项(如semi: false)要和 ESLint 中对应规则设为"off",例如:"semi": "off" - VS Code 设置里禁用 ESLint 的自动格式化:
"eslint.format.enable": false,只让它做检查,格式交给 Prettier
Error Lens 让漏洞“一眼可见”,但需配合语言服务器启用
装了 Error Lens 却只显示语法错误、不显示 ESLint 的逻辑警告(比如 no-unused-vars),问题不在插件本身,而在语言服务没把诊断透出给编辑器。
- 确保
eslint插件已启用,且项目根目录存在有效配置(哪怕只是空对象也要有.eslintrc.cjs) - 检查 VS Code 底部状态栏是否显示
ESLint图标并处于激活状态;若灰色,点击它手动启用 - 某些 monorepo 场景下,ESLint 可能找不到配置文件,需在
settings.json中指定工作区路径:"eslint.workingDirectories": [{ "mode": "auto" }]
调试时看不到真实变量值?别只靠 console.log
用 console.log 排查逻辑漏洞效率低、污染代码、还容易漏掉异步上下文里的状态。VS Code 原生调试能力足够覆盖大部分 JS 漏洞场景。
- 在 JS 文件打断点后,直接 hover 变量名就能看当前值;右键变量可“Add to Watch”持续追踪
- 函数内部想跳过无关代码?用
F10(Step Over)比F11(Step Into)更安全,避免误入 polyfill 或第三方库 - 条件分支多时,设置条件断点比写
if (x > 5) debugger更干净:右键断点 → Edit Breakpoint → 输入表达式x > 5

















