ESLint 默认仅检查 .js 文件:如何配置以扫描所有目标文件扩展名

eslint 默认仅检查 `.js` 文件,若项目中包含 `.jsx`、`.ts` 等其他扩展名的源文件,需显式通过 `--ext` 参数指定,否则这些文件中的问题不会在终端输出。

默认情况下,npx eslint . 仅递归扫描当前目录下所有匹配 .js 扩展名的文件(不包括 .jsx、.ts、.vue 等),即使这些非默认扩展的文件在编辑器中被正确高亮了 ESLint 问题(得益于编辑器插件或 IDE 集成),命令行运行时仍会跳过它们——导致“部分文件无输出”这一常见误解。

要让 ESLint 全面覆盖项目代码,需使用 --ext 选项显式声明需检查的扩展名。例如:

npx eslint . --ext .js --ext .jsx

支持多个 --ext 参数(

推荐写法),也可合并为逗号分隔形式(等效):

npx eslint . --ext .js,.jsx,.ts,.tsx

最佳实践建议:

  • 在项目根目录的 eslint.config.js(或 .eslintrc.*)中无需修改扩展配置,--ext 是 CLI 层控制项;
  • 若频繁使用,可将命令写入 package.json 的 scripts 中:
{
  "scripts": {
    "lint": "eslint . --ext .js,.jsx,.ts,.tsx",
    "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix"
  }
}

⚠️ 注意事项:

  • --ext 只影响文件发现逻辑,不改变解析器(如需 TypeScript 支持,仍需配置 @typescript-eslint/parser 和对应插件);
  • 避免遗漏扩展名(如 .mjs、.cjs 或自定义后缀),否则对应文件将静默跳过;
  • 使用 --debug 可查看 ESLint 实际加载了哪些文件,便于排查遗漏:npx eslint . --ext .js,.jsx --debug。

通过显式声明扩展名,即可确保 ESLint 在终端完整输出所有目标文件的错误与警告,实现真正端到端的静态检查覆盖。