必须先安装linter核心包再装linter-eslint,否则插件无法注册;vue文件需启用lint html files、安装eslint-plugin-html及eslint-plugin-vue,并在.eslintrc.js中配置overrides指定processor。

Atom 的 Linter 不是开箱即用的,必须先装 linter 核心包,再装对应语言的 provider(比如 linter-eslint),否则所有配置都无效。
为什么装了 linter-eslint 却没反应?
根本原因不是插件没装对,而是 Atom 1.24+ 版本起强制拆分了框架和功能:没有 linter,linter-eslint 就注册不进编辑器生命周期。常见表现包括:
- 保存文件后零提示,连语法错误都不标红
- 设置页里找不到
linter-eslint的 Settings 按钮 - 命令面板(
Cmd+Shift+P)搜不到Linter: Toggle
解决步骤很明确:
- 打开 Atom →
Settings→Install,搜linter(作者必须是steelbrain),安装并重启 - 再搜
linter-eslint单独安装,别选带“-atom”或作者不明的同名包 - 重启后,
Settings → Packages → linter-eslint → Settings才会可点
Vue 文件里的 JS 不被检查?
勾上 Lint HTML Files 是必要但不充分条件。Vue 单文件组件中,<script></script> 块默认被当成 HTML 字符串解析,ESLint 规则压根不触发。关键在两处配置同步:
- 项目里必须装
eslint-plugin-html:npm install eslint-plugin-html --save-dev -
.eslintrc.js中加overrides,显式把*.vue交给正确处理器:overrides: [{<br> files: ["*.vue"],<br> processor: "vue/vue",<br> rules: { "no-unused-vars": "off" }<br>}]
注意:processor: "vue/vue" 依赖 eslint-plugin-vue,没装它,ESLint 启动直接报错退出,不是“没效果”,是根本起不来。
main.js 里 new Vue() 被 no-new 拦截怎么办?
这不是 Atom 或插件的问题,是 ESLint 在严格执行规则。Vue 2 入口写法 new Vue({ ... }) 确实违反 no-new 规则。绕过方式有两种,但推荐程度不同:
- 全局关掉:
"no-new": "off"—— 简单粗暴,但掩盖了真实问题 - 局部禁用(更安全):
/* eslint-disable no-new */<br>new Vue({<br> el: '#app',<br> router,<br> render: h => h(App)<br>}) - 终极解法:升级到 Vue 3,改用
createApp(),既合规又免去禁用
容易被忽略的是环境路径问题:如果用了全局 ESLint(npm install -g eslint),必须在 linter-eslint 设置里勾上 Use global ESLint installation,否则插件会固执地去项目 node_modules/.bin/eslint 找,找不到就静默失败。










