eslint插件不标红、不报错,大概率是未加载项目规则:需确保vscode打开项目根目录、本地安装eslint(非全局)、配置文件.eslintrc.cjs存在且完整(推荐npx eslint --init生成),并检查console是否有“cannot find module 'eslint'”或“no eslint configuration found”报错。

ESLint 插件在 VSCode 里不标红、不报错?大概率不是插件没装好,而是它压根没读到项目规则。
为什么 ESLint 插件静默失效
VSCode 的 ESLint 插件依赖项目本地配置和运行时环境,不是装上就自动生效。常见断点如下:
- VSCode 当前打开的是子目录(比如只打开了
src/),而非项目根目录——插件找不到node_modules/eslint和.eslintrc.cjs - 本地没装
eslint:用npm install --save-dev eslint安装,别用-g全局安装;全局装了但项目里没装,插件会直接放弃加载 -
.eslintrc.cjs是手动新建的空文件,缺parserOptions或env配置,导致解析失败;推荐用npx eslint --init生成,避免漏项 - 控制台报
Cannot find module 'eslint'或No ESLint configuration found——右键命令面板输入Developer: Toggle Developer Tools查看 Console 就能确认
ESLint 和 Prettier 到底谁管格式
两者职责必须切分清楚,否则保存时代码会“抽风”:
-
Prettier只做格式化:缩进、引号、分号、括号间距等,靠.prettierrc控制 -
ESLint只管质量:未使用变量、潜在错误、安全风险、风格违规(如no-console),靠rules控制 - 必须加
eslint-config-prettier,并在extends中放在最后:["eslint:recommended", "prettier"],否则quotes、semi这类规则会和 Prettier 冲突 - VSCode 设置里只开
"source.fixAll.eslint": true,**关掉**"source.fixAll.prettier";Prettier 应仅作为 formatter,不参与 lint 修复逻辑
保存时自动修复但代码变乱?检查这三处
格式错乱往往不是插件问题,而是协同链路某环断裂:-
.prettierrc文件必须存在且语法合法(JSON 或 JS 导出,不能带注释);路径必须在项目根目录 - VSCode 设置中
"editor.defaultFormatter"必须设为"esbenp.prettier-vscode",而不是其他 formatter - 确保
"editor.formatOnSave"开启,且"eslint.format.enable"设为false(避免 ESLint 插件越界去格式化) - 如果用了 TypeScript,
eslint需搭配@typescript-eslint/parser和@typescript-eslint/eslint-plugin,否则const a: string = 'x'这类写法会被误判
真正容易被忽略的,是 ESLint 的加载时机——它只在打开项目根目录、检测到本地 node_modules 和有效配置后才启动 LSP 服务。哪怕插件已启用,只要路径或依赖缺一环,它就安静得像没装过。











