必须先装linter(作者steelbrain),再装语言插件(如linter-eslint),最后装linter-ui-default;三者缺一或顺序错误会导致静默失效——无波浪线、无提示、命令面板搜不到linter: toggle。

装了 linter 却没波浪线、没提示、命令面板搜不到 Linter: Toggle,基本可以断定:三件套缺一或顺序错,不是插件坏了,是根本没注册进去。
必须先装 linter(作者 steelbrain),再装语言插件,最后装 linter-ui-default
Atom 1.24+ 版本起,linter 是硬性前置框架,不装它,所有语言插件(如 linter-eslint、linter-flake8)都会静默失败——不是报错,是彻底“不存在”:
- Settings → Packages 里找不到对应插件的 Settings 按钮
- Cmd+Shift+P / Ctrl+Shift+P 搜不到
Linter: Toggle或Linter: Lint - 保存文件后零反馈,连
const a = ;这种语法错误都不标红
正确顺序只有一条路径:
- 在 Atom Settings → Install 中搜索
linter,确认作者是steelbrain,点击 Install - 安装完立即执行
Window: Reload(快捷键 Cmd+Alt+R / Ctrl+Alt+R),否则生命周期钩子加载失败 - 再单独搜索并安装语言插件,例如:
linter-eslint(JS/TS)、linter-flake8(Python)、linter-stylelint(CSS) - 手动安装
linter-ui-default:它负责画波浪线、悬停提示、状态栏计数;不装它,linter和 provider 都算白配
linter-eslint 没反应?检查项目配置和 ESLint 可执行路径
linter-eslint 不分析代码,只调用本地 eslint CLI。它默认只认项目根目录下的配置,且对路径极其敏感:
- 必须有
.eslintrc.js、.eslintrc.json或package.json里的eslintConfig字段;没有就跳过,不是报错,是彻底沉默 - 推荐在项目根目录运行
npx eslint --init生成配置,并确保开头有root: true,防止向上遍历父目录导致规则冲突 - Mac 用户双击图标启动 Atom 时,常因 PATH 缺失导致找不到
eslint:改用终端执行atom --new-window .启动,才能继承 shell 环境 - 若用全局
eslint(npm install -g eslint),必须在linter-eslint设置页勾选Use global ESLint installation;否则插件固执地去node_modules/.bin/eslint找,找不到就罢工
Vue 单文件组件不校验 JS?Lint HTML Files + overrides 缺一不可
默认情况下,linter-eslint 把 .vue 当 HTML 处理,<script></script> 块里的 JS 完全不进 ESLint 流程。光勾选设置页里的 Lint HTML Files 不够:
- 项目需安装
eslint-plugin-html和eslint-plugin-vue:npm install eslint-plugin-html eslint-plugin-vue --save-dev -
.eslintrc.js中必须加overrides显式指定处理器:overrides: [{ files: ["*.vue"], processor: "vue/vue", rules: { "no-unused-vars": "off" } }] -
processor: "vue/vue"依赖eslint-plugin-vue,没装它,ESLint 启动直接报错退出,不是“没效果”,是根本起不来 - 右下角 grammar 必须显示为
Vue Component或HTML (Vue);如果是Plain Text或Auto,说明语法识别失败,linter-eslint根本不触发
为什么波浪线有了但点不动、悬停无提示?
90% 是作用域过滤或语法识别问题,不是 Linter 框架本身故障:
- 检查
linter设置页是否勾选了Only lint files matching these scopes:如果已勾选,删掉内容,或明确填入source.js、source.python等 scope 名(不是文件扩展名) - 右下角 grammar 必须匹配语言类型:JavaScript 文件显示
JavaScript,Python 文件显示Python;若显示Plain Text,手动点击切换 -
linter-ui-default被其他 UI 插件压制(如linter-ui-plus或旧版linter-gutter):禁用它们,只留linter-ui-default - 某些 provider(如
linter-eslint)默认关闭实时校验:进其设置页,打开Lint on Change;但大项目开这个可能卡顿,建议在.eslintrc.js的overrides里限定只扫src/**
最常被忽略的是:插件只检查当前打开的文件,且依赖运行时能正确解析导入链。如果你的项目有相对路径 import 或自定义 resolver,eslint CLI 能跑通不代表 Atom 插件一定能——因为环境变量、NODE_PATH、tsconfig.json 解析路径可能不一致。











