vs code 中 eslint 不报错,主因是未本地安装 eslint 或缺失配置文件;需在项目根目录安装 eslint --save-dev,配置 .eslintrc.js 等文件,启用 eslint.enable,ts/tsx 文件还需指定 parser 和 plugins,并确保 parseroptions.project 路径正确。

VS Code 里 ESLint 不报错?先确认插件和项目配置都到位
ESLint 在 VS Code 里不生效,90% 是因为 eslint 包没装在项目本地,或者 VS Code 没识别到配置文件。全局安装 eslint(npm install -g eslint)基本没用——VS Code 的 ESLint 扩展默认只读项目根目录下的 node_modules/.bin/eslint。
- 必须在项目根目录运行
npm install eslint --save-dev(或yarn add eslint -D),确保node_modules/eslint存在 - 检查项目根目录是否有
.eslintrc.js、.eslintrc.json或package.json里的eslintConfig字段;没有就等于没规则,自然不报错 - VS Code 设置里确认
eslint.enable是true(默认开启,但有人会关掉) - 如果用 TypeScript,还得额外装
@typescript-eslint/parser和@typescript-eslint/eslint-plugin,否则.ts文件直接被跳过
保存时自动修复(format on save)为什么只修了一半?
VS Code 的 editor.formatOnSave 默认调用的是格式化器(如 Prettier),不是 ESLint。想让 ESLint 在保存时自动修复可修复的问题(比如引号、分号、空格),得单独配 ESLint 的保存钩子。
- 在 VS Code 设置(
settings.json)里加这行:"editor.codeActionsOnSave": {"source.fixAll.eslint": true} - 注意:只有带
fixable: "code"或fixable: "whitespace"的规则才能自动修复,比如quotes可以,no-console就不行 - 如果同时用了 Prettier,别让两者打架——推荐用
eslint-config-prettier关掉 ESLint 里和 Prettier 冲突的规则 - 某些规则(如
import/order)依赖插件且需正确解析路径,若修复失败,看控制台输出的 ESLint 报错,常是Cannot find module 'eslint-plugin-import'这类提示
为什么 JS 文件有提示,TSX 文件完全没反应?
ESLint 默认只处理 .js 和 .jsx,对 .ts、.tsx 需要显式声明解析器和扩展名支持。
-
.eslintrc.js中必须包含:parser: '@typescript-eslint/parser'和plugins: ['@typescript-eslint'] - 在
overrides里配files: ['*.ts', '*.tsx'],并指定parserOptions.project指向tsconfig.json路径(否则类型相关规则如no-unused-vars无法工作) - VS Code 工作区设置中确认
eslint.validate包含"typescript"和"typescriptreact"(默认可能只写了"javascript"和"javascriptreact") - 如果
tsconfig.json放在子目录(比如src/tsconfig.json),parserOptions.project必须写相对路径,不能省略
“Failed to load plugin” 错误到底该装哪个包?
这类错误信息里的插件名(比如 eslint-plugin-react)就是你要装的包名,但容易漏掉前缀或版本错配。
- 看到
Failed to load plugin 'react'→ 装eslint-plugin-react,不是eslint-react或eslint-plugin-react-hooks(后者是另一个独立插件) - 插件和 ESLint 主版本要兼容:
eslint@8.x推荐用eslint-plugin-react@7.x,混用@8可能报Definition for rule 'xxx' was not found - 插件装完后,必须在
.eslintrc.js的plugins数组里写字符串名(去掉eslint-plugin-前缀),比如['react', 'import'] - 如果用
eslint-config-airbnb这类共享配置,它内部已声明依赖插件,但不会自动安装——你仍需手动npm install它列出的所有 peerDependencies
最常被忽略的其实是 parserOptions.project 路径是否真实存在、以及 eslint 是否真的从项目本地加载。打开 VS Code 底部状态栏,点 ESLint 图标,能看到当前激活的配置路径和 ESLint 版本——这是判断问题出在配置、插件还是环境的第一手线索。











