sublime text 找不到 eslint 是因路径配置错误或项目未正确加载;需本地安装 eslint、通过文件夹打开项目、手动设置 executable 路径,并确保 .eslintrc.* 位于项目根目录且命名规范。

Sublime Text 找不到 eslint 命令?不是插件没装好,是路径断了
你装了 SublimeLinter 和 SublimeLinter-eslint,保存 JS 文件却毫无反应——大概率是 Sublime 根本没调起 eslint。它不报错,只是静默跳过,因为找不到可执行文件。
- 先在终端运行
eslint --version:如果报command not found,那 Sublime 一定失败 - 别迷信全局安装:
npm install -g eslint容易被 Node 版本、nvm 或权限搞乱;优先用项目本地安装:npm install eslint --save-dev - 确保你在 Sublime 里是通过 Project → Add Folder to Project 打开整个项目目录(不是单个
.js文件),否则插件无法向上查找node_modules/.bin/eslint - 手动指定路径最稳:打开 Preferences → Package Settings → SublimeLinter → Settings,在右侧用户设置中加这段:
{
"linters": {
"eslint": {
"executable": ["./node_modules/.bin/eslint"]
}
}
}
./ 是相对当前文件所在项目根目录的路径,不是 Sublime 安装目录——这点 Windows 用户尤其容易填错成绝对路径或 eslint.cmd。
.eslintrc.* 配置文件不生效?名字、位置、格式三者必须同时对
ESLint 报“no problems detected”,或者只报极少数基础错误,往往不是规则太松,而是压根没加载你的配置文件。
- 只认标准名:
.eslintrc.js、.eslintrc.cjs、.eslintrc.json、.eslintrc.yml;eslint.config.js(v8.50+ 新格式)目前不支持 - 必须放在项目根目录,或其任意父级目录(ESLint 向上查找逻辑生效的前提是 Sublime 正确识别了项目根)
- 验证是否真被读取:终端进项目根目录,运行
eslint --print-config index.js,看输出是否含你写的规则;如果报错或输出空,说明配置文件未命中 - 避免用
"ecmaVersion": "latest",改用具体数字如2022,某些旧版SublimeLinter-eslint解析会失败
为什么保存后不自动修复?eslint --fix 不是默认行为
SublimeLinter-eslint 只做检查(lint),不做修复(fix)。右下角显示 ESLint: 3 errors,但光标悬停只提示、不自动改代码——这正常,不是 bug。
- 启用自动修复需显式配置:
"args": ["--fix"]加到 linter 设置里 - 完整写法(仍放在 SublimeLinter → Settings 用户配置中):
{
"linters": {
"eslint": {
"executable": ["./node_modules/.bin/eslint"],
"args": ["--fix"]
}
}
}
- 注意:
--fix只对部分规则生效(比如semi、quotes),像no-unused-vars这类语义类问题不会自动删变量 - 如果用了 TypeScript 或 Vue,还得加
--ext .js,.jsx,.ts,.tsx,.vue到args,否则非.js文件不检查
右下角没显示 ESLint,控制台也无日志?校验链根本没触发
状态栏左下角不显示 ESLint,按 Ctrl+` 打开控制台也看不到 SublimeLinter: eslint: 开头的日志——说明整个校验流程卡在最外层,连初始化都没过。
- 确认已启用:按
Ctrl+Shift+P输入SublimeLinter: Toggle Linting,确保是 enabled - 确认语法识别正确:右下角应显示
JavaScript或JavaScript (Babel),不是Plain Text;如果是 Vue 单文件,需额外装Vue Syntax Highlight插件并确保<script></script>块被识别为 JS - 检查 SublimeLinter 是否真加载:控制台输入
sublime.active_window().run_command("sublimelinter_toggle"),若报错AttributeError,说明核心插件没装或没启动 - Windows 用户注意:
SublimeLinter-eslint会自动补.cmd后缀,所以executable值写eslint就行,别写eslint.cmd
最常被忽略的是:你以为在检查,其实 Sublime 根本不知道你在编辑 JS 文件——语法高亮不对、项目没加全、配置文件放错位置、eslint 命令本身在终端就跑不通,四者任一出问题,后面所有配置都白搭。











