webstorm中eslint不报错、不标红、无修复菜单,根本原因是未正确加载项目级配置:必须本地安装eslint(非全局)、配置文件为eslint.config.js且export default[]、vue/ts需额外插件及文件类型绑定,并手动指定package路径和配置文件。

WebStorm 里 ESLint 没报错、没标红、右键没有 Fix ESLint Problems,基本可以断定:它根本没真正加载你的项目级 ESLint 配置——不是插件没开,也不是规则写错了,而是 WebStorm 压根没找到或没认出你本地的 eslint 和 eslint.config.js。
确认 ESLint 是本地安装,不是全局安装
WebStorm 默认忽略 npm install -g eslint,只信任项目目录下的 node_modules/eslint(注意不是 node_modules/.bin/eslint,那是软链接)。
- 进项目根目录,运行
ls node_modules/eslint(macOS/Linux)或dir node_modules\eslint(Windows),确保该路径真实存在 - 如果不存在,执行
npm install --save-dev eslint或yarn add --dev eslint - 用 pnpm 的项目,路径可能是
node_modules/.pnpm/stylelint@16.9.0/node_modules/eslint,需手动展开找真实包目录
配置文件名和导出格式必须匹配 ESLint 版本
ESLint v9+ 不再识别 .eslintrc.js,只认 eslint.config.js,且必须用 export default [] 导出数组格式。
- 检查文件名是否为
eslint.config.js(不是.eslintrc.js或package.json中的eslintConfig字段——WebStorm 完全不读这个) - 打开该文件,确认第一行是类似
export default [ { files: ["**/*.js"], rules: { "no-console": "warn" } } ]的数组导出 - 若用 TypeScript 写配置(如
eslint.config.ts),需在 WebStorm 设置中勾选unstable_ts_config标志
Vue/TS 文件的 <script></script> 块不检查?缺解析器 + 插件 + 文件类型绑定
WebStorm 默认只对 .js 和 .jsx 启用 ESLint。.vue 和 .ts 文件中的 JS 逻辑不会自动触发检查,除非你显式告诉它“怎么解析”和“用什么规则”。
- 装对应依赖:
yarn add --dev eslint-plugin-vue(Vue)或yarn add --dev @typescript-eslint/parser @typescript-eslint/eslint-plugin(TS) - 在
eslint.config.js中声明:plugins: ['vue']+extends: ['plugin:vue/vue3-essential'](Vue),或使用tseslint.config()(TS) - 进
Settings > Editor > File Types,搜索Vue,确认*.vue已关联到Vue.js文件类型(否则 WebStorm 把<script></script>当纯文本,根本不走 JS 解析流程) - 改完后重启 WebStorm 或右键项目 →
Reload project from disk,缓存不清理会导致配置静默失效
手动指定 package 路径和配置文件,别信 “Automatic configuration”
“Automatic ESLint configuration” 在 monorepo、自定义配置路径、多 workspace 场景下几乎必挂。最稳的方式是手动点选。
- 进
Settings > Languages & Frameworks > JavaScript > Code Quality Tools > ESLint - 勾选
Enable ESLint,然后点击Package右侧文件夹图标,精准定位到项目内的node_modules/eslint - 在
Configuration file中手动选中eslint.config.js(路径必须正确,不能留空) - 如需保存自动修复,勾选
Run eslint --fix on save;若用了eslint_d.js加速,Package要指向node_modules/eslint_d.js,并确保 Node.js 解释器已配好
最容易被忽略的是:.vue 文件类型绑定和配置文件导出格式。哪怕 eslint.config.js 内容完全正确,只要 *.vue 没绑到 Vue.js 文件类型,或者导出不是数组,WebStorm 就会安静地跳过所有检查——连错误提示都不会给你。











