ESLint CLI 扫描 HTML 文件时为什么没效果?

皇甫浩迪 阅读 10

我用 ESLint 的 CLI 命令直接扫描一个包含内联 script 的 HTML 文件,但 ESLint 根本没报错,也没处理里面的 JS 代码。是不是 ESLint 默认不支持 HTML?我试过加 --ext .html 也不行。

这是我的测试文件:

<!DOCTYPE html>
<html>
<body>
  <script>
    const a = 1
    console.log(a)
  </script>
</body>
</html>
我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
小春艳
小春艳 Lv1
ESLint 默认确实不支持 HTML 文件,它只能处理 .js、.jsx、.ts、.tsx 这些纯 JS/TS 文件。你加 --ext .html 也没用,因为 --ext 只是告诉 CLI 要扫描哪些扩展名的文件,但 ESLint 本身没有解析 HTML 的能力。

要做校验的话,得用 eslint-plugin-html 这个插件。它能提取 HTML 里的内联 script 然后交给 ESLint 检查。

安装插件:

npm install --save-dev eslint-plugin-html


然后在 ESLint 配置里启用插件:

// .eslintrc.js
module.exports = {
plugins: ['html'],
// 或者如果你用的是旧版配置
// extends: ['plugin:html/recommended']
};


最后运行扫描:

eslint --ext .html,.js your-file.html


这样就能检测到你 HTML 里的 console.log 和那个没分号的 const a = 1 了。

另外提醒一下,如果你项目里 HTML 文件比较多,还可以考虑用 eslint-plugin-vue 配合 vue-eslint-parser 来处理 .vue 文件里的 script 块,思路是一样的——都需要专门的插件来解析对应的文件格式。
点赞
2026-03-18 23:01