答案是必须安装linter、linter-eslint和linter-ui-default三者并正确配置:先装steelbrain作者的linter核心,再装linter-eslint,最后手动安装启用linter-ui-default;Vue文件还需勾选Lint HTML Files、安装eslint-plugin-vue/html,并在.eslintrc.js中配置overrides指定processor。

装了 linter-eslint 却没任何波浪线?不是插件坏了,是 Atom 的 ESLint 集成有三层硬性依赖,漏掉任一环就彻底静默。
必须先装 linter,否则 linter-eslint 根本注册不上
Atom 1.24+ 强制拆分架构:linter 是底层事件总线和诊断注册中心,linter-eslint 只是它的语言适配器。不装前者,后者连 Settings 页面都打不开,命令面板搜不到 Linter: Toggle。
- Settings → Install → 搜
linter,认准作者steelbrain,安装后必须执行Window: Reload(快捷键Ctrl+Alt+R/Cmd+Alt+R) - 再单独搜
linter-eslint安装,别选带-atom后缀或作者不明的包 - 验证是否装对:Settings → Packages →
linter-eslint→ Settings 页面能点开,且右下角状态栏显示 “0 problems”
没波浪线?大概率缺了 linter-ui-default
linter 只提供检查逻辑,不负责画红线、不弹提示、也不显示问题数。真正干这事的是 linter-ui-default,它不随 linter 自动安装,必须手动加。
- 命令行安装:
apm install linter-ui-default - 装完后检查 Settings → Packages → 搜索
linter-ui-default→ 确认右侧开关是蓝色 “Enabled” - 禁用
linter-gutter、linter-ui-plus等第三方 UI 插件,它们会压制默认渲染逻辑
.vue 文件里的 JS 不报错?Lint HTML Files + overrides 缺一不可
linter-eslint 默认只处理 .js 和 .jsx,.vue 被当 HTML 解析,里面的 <script> 块根本不会进 ESLint 流程。
- Settings → Packages →
linter-eslint→ Settings → 勾选Lint HTML Files - 确保已安装
eslint-plugin-vue和eslint-plugin-html:npm install eslint-plugin-vue eslint-plugin-html --save-dev - 项目根目录
.eslintrc.js中必须包含overrides配置:module.exports = { root: true, overrides: [{ files: ["*.vue"], processor: "vue/vue", rules: { "no-unused-vars": "off" } }] };
ESLint 找不到配置或报路径错误?环境与位置必须对齐
linter-eslint 默认只读项目根目录下的 .eslintrc.js、.eslintrc.json 或 package.json 中的 eslintConfig 字段,完全不认全局配置(比如 ~/.eslintrc.js)。
- 用
npx eslint --init在项目根目录生成配置,开头务必写root: true,防止向上遍历继承父目录规则 - Mac 用户若双击图标启动 Atom,常因 Node 环境缺失
PATH—— 改用终端执行atom --new-window启动,才能继承 shell 环境 - 若用全局 ESLint(
npm install -g eslint),Settings →linter-eslint→ 勾上Use global ESLint installation;否则插件默认去node_modules/.bin/eslint找,找不到就罢工
最常被忽略的其实是 root: true 和 atom --new-window 启动方式——前者防规则污染,后者保 CLI 可达,这两处出错,其他配置全白搭。

















