VSCode中ESLint插件无反应,首要确认本地已安装eslint CLI并正确配置路径;其次检查配置文件命名、位置及格式(推荐.eslintrc.cjs);再确保VSCode继承shell环境变量或手动指定eslint.runtime;最后按需配置validate、codeActionsOnSave及typescript支持。

VSCode 里装了 ESLint 插件却没反应?不是插件坏了,而是本地 ESLint 没跑起来,或者配置根本没被加载。
npm install eslint --save-dev 是硬性前提
VSCode 的 ESLint 插件(dbaeumer.vscode-eslint)只是个“转发器”,它默认只调用你项目 node_modules/.bin/eslint 下的可执行文件。全局安装的 eslint 基本无效——尤其当你有多个项目、不同 Node 版本或使用 pnpm/yarn 2+ 时,容易因路径隔离导致插件找不到命令。
- 必须在项目根目录运行
npm install eslint --save-dev(或yarn add eslint -D),然后确认node_modules/.bin/eslint存在 - 若用 TypeScript,额外装
@typescript-eslint/parser和@typescript-eslint/eslint-plugin;React 项目加eslint-plugin-react;Vue 加eslint-plugin-vue - 检查
package.json中是否有"eslintConfig"字段,或根目录是否存在合法配置文件(.eslintrc.js、.eslintrc.cjs、eslint.config.js) - 如果
npx eslint --version报错,说明本地 ESLint 根本没装好,插件会静默失效
.eslintrc.cjs 或 eslint.config.js 怎么选
Node 14+ 支持 .eslintrc.js,但若项目 package.json 里写了 "type": "module",就必须用 .eslintrc.cjs 并用 module.exports = {} 导出;否则会报 Cannot use import statement outside a module。
- 新项目推荐用
eslint.config.js(ESLint v8.50+ 扁平化配置),但 VSCode 当前稳定版(v1.85+)默认不识别,需手动开启:eslint.experimental.useFlatConfig: true -
eslint.config.js必须导出数组:export default [{ files: ["**/*.ts"], rules: { ... } }],不能写module.exports = [...] - 无论哪种格式,务必加
root: true,防止 ESLint 向上查找父目录配置,引发规则冲突 - 配置文件放在
src/目录下对index.js(项目根目录)完全不生效——ESLint 是按当前文件路径向上找最近的配置,不是按 VSCode 窗口打开路径
VSCode 设置里哪些项真关键
很多问题不是规则写错了,而是 VSCode 没把 ESLint 当成 JS/TS 文件的校验工具。状态栏右下角看不到 ESLint 图标,或点击后显示 “Disabled”,基本就是工作区没认准。
PigX UI Pro 前端开发指南 - Vue 3 + TypeScript + Element Plus。当用户提到 PigX UI、PigX 前端、lgb-mgui 项目、Vue 3 企业级后台开发、Element Plus 后台开发时使用此技能。
立即学习“前端免费学习笔记(深入)”;
- 确保在项目根目录打开 VSCode(即含
package.json和.eslintrc.*的文件夹),不是它的子文件夹 - 在项目级
.vscode/settings.json中写死启用:"eslint.enable": true,避免被用户级设置覆盖 - 显式告诉 VSCode 要校验哪些语言:
"eslint.validate": ["javascript", "typescript", "typescriptreact"](缺了typescriptreact,.tsx文件就完全不检查) - 保存自动修复必须用:
"editor.codeActionsOnSave": {"source.fixAll.eslint": true};旧配置eslint.autoFixOnSave已被彻底移除 - 如果同时用了 Prettier,关掉
"editor.formatOnSave": false,否则两个工具打架,代码越修越乱
为什么改了规则却没反应
最常被忽略的是解析器和文件匹配没对齐。ESLint 默认只处理 .js,遇到 .ts、.jsx、.vue 会直接跳过——不是规则不生效,是压根没进检查流程。
- 在配置中明确指定
parser: "@typescript-eslint/parser",且parserOptions里设ecmaVersion和sourceType - TSX 文件要加
files: ["**/*.tsx"]到配置里(eslint.config.js)或overrides(.eslintrc.*) - Vue 单文件需额外配
parser: "vue-eslint-parser",并让其内部 parser 指向@typescript-eslint/parser - 打开命令面板(
Ctrl+Shift+P),运行ESLint: Show Output Channel,看日志里是否出现Using configuration from /path/to/.eslintrc.cjs—— 如果没这行,说明配置根本没加载 - 报
Cannot find module 'eslint-plugin-react'?不是插件名写错,是那个包没装进node_modules,或plugins数组里漏写了字符串引号
真正卡住人的从来不是规则怎么写,而是 ESLint 进程启动时的工作目录、解析器绑定、文件 glob 匹配这三步有没有对齐。调试时优先看输出通道日志,而不是反复改 rules。

















