ESLint的ignore文件怎么设置才能排除node_modules和特定HTML文件?
我在项目里配置了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字段?
.eslintrc.json里的ignorePatterns并不是用来设置忽略规则的最佳地方,ESLint 的忽略文件应该通过.eslintignore文件来配置。### 更好的写法
在项目根目录下创建一个
.eslintignore文件(如果已经有就直接修改),然后写入以下内容:就这么简单!保存后重新运行
eslint,你会发现node_modules和test.html都不会再被检查了。### 为什么这样更优雅?
1. **职责分离**:忽略规则本来就应该放在专门的文件里,而不是混在
.eslintrc.json中。这样配置更清晰,也符合“单一职责原则”。2. **默认行为**:实际上,
node_modules通常是 ESLint 默认会忽略的,但如果用了某些自定义配置可能会失效,所以在.eslintignore中显式声明是最稳妥的方式。3. **路径问题**:你之前可能怀疑过路径写法,其实不需要加绝对路径或特殊符号,
.eslintignore文件中的路径是相对项目的根目录的,直接写文件名或目录名就行。### 补充说明
如果你非要坚持用
ignorePatterns,也不是不行,但需要确保 ESLint 版本支持这个字段,并且路径写法要正确。不过我真心建议你用.eslintignore,这是更通用、更简洁的做法。最后提醒一下,像这种 HTML 文件的检查,有时候可以用专门的工具(比如
htmlhint)来代替 ESLint,毕竟 ESLint 主要是为 JavaScript 设计的。希望这些建议对你有帮助!