vscode eslint插件无反应,首要检查eslint.validate是否覆盖实际文件类型;必须显式配置["javascript","javascriptreact","typescript","typescriptreact","vue"]等语言模式,否则对应文件不触发校验。

VSCode插件装完就报错?检查 eslint.validate 是否覆盖了实际文件类型
很多项目在装完 ESLint 插件后,Problems 面板里空空如也,或者只报部分文件的错——根本原因常是 eslint.validate 没配对。VSCode 默认只校验 javascript,但现代项目里常见 javascriptreact、typescript、vue 等变体,漏掉就等于关掉了对应文件的 lint。
-
eslint.validate必须显式列出所有用到的语言模式,比如 React 项目要加"javascriptreact" - 如果用了 TypeScript,还得加上
"typescript"和"typescriptreact",否则.tsx文件完全不走 ESLint - 配置位置优先级:工作区
.vscode/settings.json> 用户设置 > 默认值;多人协作时务必把这行写进项目内的.vscode/settings.json,别只改自己本地 - 验证方式:打开一个
.jsx文件,手动触发ESLint: Show Output Channel,看日志里有没有Validating 'xxx.jsx'——没有就说明没生效
editor.formatOnSave 和 source.fixAll.eslint 别同时开
这两个开关看着都“自动修复”,但行为完全不同:editor.formatOnSave 调用的是格式化器(比如 Prettier),而 source.fixAll.eslint 是让 ESLint 自己去修规则类问题(比如补分号、删未用变量)。同时开容易打架,尤其当 Prettier 和 ESLint 规则有重叠时(比如引号、逗号),结果就是保存一次代码来回跳动两次。
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
- 推荐组合:
"editor.formatOnSave": true+"editor.defaultFormatter": "esbenp.prettier-vscode"+"editor.codeActionsOnSave": { "source.fixAll.eslint": true } - 关键前提是必须用
eslint-config-prettier关掉所有和 Prettier 冲突的 ESLint 格式规则,否则fixAll会反复覆盖 Prettier 的输出 - 如果项目里还用了
prettier-eslint这类混合工具,反而会多一层转换延迟,直接弃用,用标准eslint-plugin-prettier更稳
多包项目(monorepo)里 ESLint 总找不到配置?试试 eslint.workingDirectories
在 packages/foo 或 apps/bar 里打开文件,ESLint 插件默认只往上找一层的 .eslintrc.js,如果根目录没配、子包又没自己的配置,就会静默失效——连警告都不报,你以为它在干活,其实什么都没做。
- 在工作区
.vscode/settings.json中加这一项:"eslint.workingDirectories": [{ "mode": "auto" }],它会让插件从当前文件路径开始,逐级向上找最近的 ESLint 配置 - 如果子包各自有独立配置(比如不同框架、不同规则强度),可以用
"eslint.workingDirectories": ["./packages/foo", "./apps/bar"]显式声明 - 注意:这个设置只影响 VSCode 插件行为,不影响命令行
npx eslint .的执行逻辑,后者仍按 CLI 自身规则找配置
为什么 .eslintrc.js 改了,VSCode 里不生效?重启语言服务器不是万能解法
改完配置文件后,很多人习惯 Ctrl+Shift+P → “Developer: Restart Language Server”,但 ESLint 插件实际依赖的是 Node.js 进程缓存和配置加载时机。有时候改了 extends 或 plugins,光重启不够,因为插件可能还在用旧的解析上下文。
- 最可靠的做法:关掉当前窗口,重新用 VSCode 打开整个项目文件夹(不是单个文件),强制重载所有配置
- 检查
Output面板里ESLint通道的启动日志,确认看到类似Using configuration from /path/to/.eslintrc.js的路径,且时间戳是修改后的 - 如果用了
eslint.config.mjs(新式 Flat Config),确保 VSCode 插件版本 ≥ 2.4.0,旧版根本不识别这种格式 - 常见陷阱:
parserOptions.project指向的tsconfig.json路径错误,或ignorePatterns把当前文件夹排除了,这些都不会报错,只会静默跳过
Output 面板里的 ESLint 日志,比瞎猜快十倍。










