VSCode 中 ESLint 插件报错 "ESLint is not running",通常意味着插件无法启动或检测到 ESLint 环境。这个问题可能由多种原因引起,需要按顺序排查。下面结合几个常见检查点,给出具体的操作步骤和判断方法。
首先确认项目中是否已安装ESLint。打开终端,在项目根目录运行 `npx eslint --version`。如果提示未找到命令,说明本地未安装,需执行 `npm install eslint --save-dev` 或 `yarn add eslint --dev`。全局安装也可能导致版本冲突,建议优先使用项目本地依赖。
1. 检查 VSCode 设置与输出日志
按下 Ctrl+Shift+P 打开命令面板,输入 ESLint: Show Output Channel 查看输出日志。常见错误如 ESLint is not running 通常源于 VSCode 设置中 eslint.enable 被设为 false。请打开设置(Ctrl+,),搜索 eslint.enable,确认勾选为 true。若工作区有 .vscode/settings.json,检查其中是否误写 "eslint.enable": false。
输出日志是定位问题的第一步。如果看到类似 Cannot find module 'eslint' 或 ESLint server failed to start,说明是安装或路径问题。如果日志完全空白,可能是插件被禁用或信任模式未开启。
2. 工作区信任模式的影响
VSCode 的信任模式会限制插件功能。如果项目位于不受信任的文件夹,ESLint 插件可能不会运行。检查窗口左下角是否显示“限制模式”。若需启用,点击“管理”并选择“信任工作区”。信任后重新加载窗口,ESLint 应自动激活。
很多开发者忽略了信任模式,尤其是从远程或下载的项目。信任后,如果问题依旧,再去检查配置文件。
3. 检查 ESLint 配置文件
ESLint 需要配置文件才能正常工作。在项目根目录检查是否存在 .eslintrc.js、.eslintrc.json 或 eslintConfig 字段(在 package.json 中)。若无,运行 npx eslint --init 按提示生成。注意配置文件语法错误(如 JSON 多逗号)会导致 ESLint 启动失败,可通过 npx eslint --debug 查看详细错误。
配置文件缺失或格式错误是高频原因。即使有 .eslintrc 文件,如果语法错误,ESLint 会拒绝加载。运行 npx eslint --debug 会输出具体错误行号,便于修正。此外,如果配置文件中引用了不存在的插件或解析器,也会导致插件停止工作。
4. 确认 ESLint 安装与 Node.js 版本
首先确认项目中是否已安装 ESLint。打开终端,在项目根目录运行 npx eslint --version。如果提示未找到命令,说明本地未安装,需执行 npm install eslint --save-dev 或 yarn add eslint --dev。全局安装也可能导致版本冲突,建议优先使用项目本地依赖。
同时检查 Node.js 版本:ESLint 7.0+ 要求 Node.js 10.13.0 以上,ESLint 8.0+ 要求 Node.js 12.22.0 以上。运行 node -v 查看。如果版本过低,升级 Node.js 或降级 ESLint 版本(如 npm install eslint@7)。另外,确保 VSCode 的 Node.js 路径与终端一致:打开设置搜索 node path,留空则使用系统 PATH。
5. 检查 ESLint 插件版本与冲突
过时的 ESLint 插件可能与新版 VSCode 不兼容。在扩展面板找到 ESLint,检查是否有更新。如果已是最新,可尝试禁用后重装。注意:同时安装多个 ESLint 插件(如 ESLint 和 dbaeumer.vscode-eslint)可能冲突,建议仅保留一个。安装后重启 VSCode 并观察输出日志是否显示 "ESLint server started"。
如果以上步骤均未解决,可以尝试在设置中手动指定 ESLint 运行路径,例如 "eslint.nodePath": "./node_modules/eslint"。但通常项目本地安装已足够。
这些检查点覆盖了大部分“ESLint is not running”的原因。实际操作时,建议从输出日志入手,按顺序逐项排除,不要跳过信任模式等容易忽略的环节。