PhpStorm中ESLint不标红主因是未运行:先确认右下角ESLint图标是否亮起;需启用插件、路径指向项目本地node_modules/.bin/eslint(Windows为eslint.cmd)、勾选“Run eslint from package.json”、手动指定配置文件、匹配Node版本、正确配置parser及files规则。
PhpStorm 里 ESLint 不标红、不提示,八成不是规则写错了,而是它根本没跑起来——先看右下角状态栏有没有亮起的
图标。
确认 ESLint 插件已启用且路径指向本地
很多人配完
还是没反应,问题常出在路径上:
Settings → Languages & Frameworks → JavaScript → Code Quality Tools → ESLint → Node interpreter 和 ESLint package 必须都指向项目级路径,不是全局(比如
或
)
Windows 下若用 pnpm/yarn,
可能是软链接,PhpStorm 读取失败;可临时复制一份真实可执行文件过去(如把
复制为
,再指向它)
勾选
:这会让 PhpStorm 用
启动,自动继承
的
上下文,避免
类错误
手动指定配置文件,别信 “Automatic detection”
PhpStorm 自动探测容易加载父目录或全局的
,导致规则错乱:
取消勾选
在
栏里手动填入绝对路径,例如:
或
若用新式扁平化配置
,确保 Node 版本 ≥18.12,且 PhpStorm 设置中指定的 Node 解释器版本匹配——旧版 Node 会直接报
,而不是“找不到配置文件”
Fix on Save 只修一部分?检查规则是否支持自动修复
勾了
却只修缩进、不修引号或未使用变量,不是配置漏了,是 ESLint 本身不支持:
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
只能修复带
标记的规则(如
、
、
),但
、
等规则根本不支持自动修复
想更激进地修复,可在
加脚本:
,再通过 File Watchers 绑定;但注意这会绕过编辑器实时校验逻辑,无法即时反馈
保存时修复 ≠ 全量修复:它只作用于当前文件变更部分,不会扫描整个项目
JS 和 TS 混合项目要额外装
如果项目含
或
文件,仅靠基础 ESLint 会报语法解析错误:
必须安装:
配置中
要设为
,且
加
若用
新格式,推荐按官方方式导出:
;否则容易因
路径不对,导致类型检查失效
最常被忽略的一点:ESLint 配置生效的前提是文件被识别为 JavaScript/TypeScript —— 确保
和
文件后缀在 Settings → Editor → File Types 中绑定到了正确的文件类型,否则连语法树都构不起来,更别说检查了。
ESLintnode_modules/.bin/eslint.eslintrc.cjs/usr/local/bin/eslintC:\Users\xxx\AppData\Roaming\npm\eslint.cmdnode_modules/.bin/eslinteslint.cmdeslint-local.cmdRun eslint from package.jsonnpx eslintpackage.jsondependenciesCannot find module 'eslint-plugin-react'.eslintrc.jsAutomatic configuration file detectionConfiguration file$ProjectFileDir$/.eslintrc.cjs$ProjectFileDir$/eslint.config.jseslint.config.jsUnexpected token 'export'Fix on Saveeslint --fixfixable: truequotessemiindentno-consolereact-hooks/exhaustive-depspackage.json"fix": "eslint . --fix --fix-type problem,layout"@typescript-eslint/parser.ts.tsxnpm install --save-dev @typescript-eslint/parser @typescript-eslint/eslint-plugin typescriptparser@typescript-eslint/parserplugins@typescript-eslinteslint.config.jsimport tseslint from 'typescript-eslint'; export default tseslint.config(...)parserOptions.project.js.ts