ESLint的ignore文件怎么设置才能排除node_modules和特定HTML文件?

シ耀择 阅读 44

我在项目里配置了ESLint,但想排除node_modules和test.html文件,试过在.eslintrc.json里写ignorePatterns,结果node_modules还是被检查,test.html里的警告也还在…

我的目录结构是这样的:src/放代码,根目录有个test.html,配置文件是这样写的:


{
  "ignorePatterns": ["node_modules", "test.html"],
  "env": {
    "browser": true
  }
}

但执行eslint时还是报错,比如test.html里的这句:<div>测试<div>,提示闭合标签缺少斜杠。明明写进ignorePatterns了啊,是不是路径哪里写错了?

另外node_modules目录的报错也一直存在,是不是要加绝对路径?或者需要在package.json里单独配置ignore-patterns字段?

我来解答 赞 5 收藏
二维码
手机扫码查看
1 条解答
程序猿爱军
你的问题其实挺常见的,很多开发者在用 ESLint 的时候都会碰到类似的困惑。先说结论:.eslintrc.json 里的 ignorePatterns 并不是用来设置忽略规则的最佳地方,ESLint 的忽略文件应该通过 .eslintignore 文件来配置。

### 更好的写法

在项目根目录下创建一个 .eslintignore 文件(如果已经有就直接修改),然后写入以下内容:

node_modules/
test.html


就这么简单!保存后重新运行 eslint,你会发现 node_modulestest.html 都不会再被检查了。

### 为什么这样更优雅?

1. **职责分离**:忽略规则本来就应该放在专门的文件里,而不是混在 .eslintrc.json 中。这样配置更清晰,也符合“单一职责原则”。
2. **默认行为**:实际上,node_modules 通常是 ESLint 默认会忽略的,但如果用了某些自定义配置可能会失效,所以在 .eslintignore 中显式声明是最稳妥的方式。
3. **路径问题**:你之前可能怀疑过路径写法,其实不需要加绝对路径或特殊符号,.eslintignore 文件中的路径是相对项目的根目录的,直接写文件名或目录名就行。

### 补充说明

如果你非要坚持用 ignorePatterns,也不是不行,但需要确保 ESLint 版本支持这个字段,并且路径写法要正确。不过我真心建议你用 .eslintignore,这是更通用、更简洁的做法。

最后提醒一下,像这种 HTML 文件的检查,有时候可以用专门的工具(比如 htmlhint)来代替 ESLint,毕竟 ESLint 主要是为 JavaScript 设计的。希望这些建议对你有帮助!
点赞 10
2026-02-02 14:06