vscode中eslint不报错,根本原因是未加载本地配置或eslint包;需确认package.json存在、依赖已安装、状态栏显示使用本地而非全局eslint,并优先用.eslintrc.js而非eslint.config.js。

VSCode 里 ESLint 不报错、不标红、保存也不修复,基本可以断定:它根本没跑起来,不是规则写错了,而是压根没加载到你的配置或本地 eslint 包。
为什么装了插件却没任何 ESLint 提示?
ESLint 插件(dbaeumer.vscode-eslint)只是个“转发器”,真正干活的是你项目 node_modules/.bin/eslint。它不会 fallback 到全局安装,也不会自动识别父目录的配置。
- 检查项目根目录下是否有
package.json,且已执行过npm install eslint --save-dev(或yarn add eslint -D) - 运行
npx eslint --version确认本地eslint可执行;若报错,说明依赖没装好或用了 pnpm/yarn 2+ 的隔离模式,需在 VSCode 设置中显式指定"eslint.packageManager": "pnpm" - 右下角状态栏点 ESLint 图标,看是否提示 “Using globally installed ESLint”——如果是,就说明没走本地
- 打开命令面板(
Ctrl+Shift+P),执行ESLint: Show Output Channel,日志里若出现Failed to load config或Cannot find module,就是解析器或插件缺失
.eslintrc.js 还是 eslint.config.js?选哪个更稳?
截至 2026 年 4 月,VSCode ESLint 插件对新格式 eslint.config.js(Flat Config)的支持仍不完全可靠,尤其在多根工作区或 monorepo 中容易漏读配置。
- 生产项目优先用
.eslintrc.cjs或.eslintrc.js(必须用module.exports = {...},不能用export default) - 若坚持用
eslint.config.js,确保插件版本 ≥v2.4.0,并在settings.json中加:"eslint.experimental.useFlatConfig": true - 切勿同时存在
.eslintrc.*和eslint.config.js——插件会冲突报错,直接拒绝启动 - 配置里务必写
root: true,否则 ESLint 会向上递归找父目录配置,导致规则意外覆盖
TS/JSX/.vue 文件不校验?大概率是 parser 没配对
ESLint 默认只认纯 JS 语法。遇到 .ts、.tsx、.vue 就会卡在解析阶段,连规则都不进,更别说报错了。
前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。
- TypeScript 项目:装
@typescript-eslint/parser和@typescript-eslint/eslint-plugin,配置中设parser: '@typescript-eslint/parser',并加parserOptions.project: './tsconfig.json'(否则类型相关规则如@typescript-eslint/no-unused-vars不生效) - React/JSX:在
parserOptions中启用ecmaFeatures.jsx: true,并加入plugins: ['react', 'react-hooks'] - Vue 单文件组件:需
parser: '@typescript-eslint/parser'+parserOptions.parser: 'vue-eslint-parser'(针对<script setup></script>场景) - VSCode 设置中补全验证语言:
"eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact", "vue"]
保存时自动修复无效?两个开关缺一不可
eslint.autoFixOnSave 已被彻底废弃。现在修复行为由 VSCode 的通用代码操作机制接管,必须同时满足:
-
"editor.codeActionsOnSave": {"source.fixAll.eslint": true}(写入工作区.vscode/settings.json,避免污染全局) -
"editor.defaultFormatter": "dbaeumer.vscode-eslint"(对对应语言,如[javascript]或[typescript]单独设置)
注意:source.fixAll.eslint 只触发 ESLint 标记为 fixable 的规则(比如 semi、quotes),像 no-console 或逻辑类问题无法自动删掉。别指望它能替代人工 review。
最常被忽略的一点:VSCode 必须以整个项目根目录为工作区打开(File > Open Folder),而不是只打开某个子文件夹——否则它找不到 .eslintrc.*,也加载不了 node_modules/.bin/eslint。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










