如何配置ESLint忽略子模块且不触发报错?
解决ESLint忽略子模块报错问题
报错原因
配置**/*.ts时出现Error: All files matched by '.' are ignored.,是因为该规则会忽略所有目录下的.ts文件,包括根目录本身的.ts文件,导致ESLint没有可检测的目标文件,触发报错。
实现禁用子模块检测的正确方案
1. 修正根目录.eslintignore规则
不需要全局忽略.ts文件,直接针对子模块目录配置忽略规则,在根目录的.eslintignore中添加:
submodule/
或者更明确地忽略子模块下所有内容:
submodule/**
注意:末尾加斜杠
submodule/会明确匹配目录,避免误忽略同名文件;submodule/**会匹配子模块下所有文件和子目录,效果一致。
2. 检查根目录.eslintrc配置
打开根目录的.eslintrc(或.eslintrc.js等格式文件),确认include数组中没有包含submodule/相关路径,如果之前添加过,直接删除即可。ESLint默认不会扫描未加入include的目录,配合.eslintignore的规则就能彻底跳过子模块检测。
3. 清除ESLint缓存(若规则不生效)
如果修改规则后仍有异常,可能是缓存导致旧规则残留,执行以下命令清除缓存并重新检测:
eslint --no-cache .
关于子模块内部的.eslintignore
子模块自己的.eslintignore仅作用于子模块内部的ESLint检测,不会影响根目录ESLint的扫描逻辑,所以不需要修改它。
内容的提问来源于stack exchange,提问作者Artem Ptushkin
相关产品推荐
相关产品推荐

