stylelint 默认不检查 html 中的 块,因其仅识别 css 后缀文件;需安装 stylelint-processor-html 并配置 processor 才能提取并校验标准 标签内容,但不支持内联样式或非标准 属性。

Stylelint 默认不处理 .html 文件里的 <style></style> 块,直接写进去也不会报错——这不是 bug,是设计限制。要让它检查 HTML 中的样式,必须加一层“提取器”(processor),且仅限标准 <style></style> 标签。
为什么 npx stylelint index.html 提示 “No files matching the pattern were found”
Stylelint 的文件匹配逻辑只认 CSS 源码后缀(.css、.scss、.vue 等),对 .html 后缀默认跳过。即使文件里有 <style>.btn { color: reed; }</style>,它也当纯文本忽略。
- 根本原因:Stylelint 输入是 CSS 字符串,不是 HTML AST;它不解析标签结构
- 现象验证:运行
npx stylelint --version确认能执行,再试npx stylelint "**/*.html",大概率仍无输出 - 错误写法示例:
"files": ["**/*.html"]在配置中无效,Stylelint 不会因此开始解析 HTML
如何让 Stylelint 检查 <style></style> 块:必须装 stylelint-processor-html
这个包的作用是从 HTML 字符串中抽取出 <style></style> 标签内容,并转成 Stylelint 能处理的 CSS 源码。它不支持 <style scoped></style> 或 <style lang="scss"></style>,除非额外配 customSyntax。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 安装命令:
npm install --save-dev stylelint-processor-html - 在
.stylelintrc.js中声明:module.exports = { processor: "stylelint-processor-html", rules: { "color-no-invalid-hex": true } }; - VS Code 需补全语言验证列表:
"stylelint.validate": ["html"](否则编辑器不触发) - WebStorm 用户注意:Settings → Languages & Frameworks → Stylesheets → Code Quality Tools → Stylelint → Run for files 必须包含
**/*.html
<div style="color: red"> 这种内联样式永远不被 Stylelint 检查
<p>Stylelint 明确放弃支持内联 <code>style 属性。这不是遗漏,而是工程判断:这类写法语义弱、难维护、易与 JS 插值冲突(如 style="margin: {{ x }}px"),且没有稳定 parser 能安全分离出 CSS 声明。
- 常见误判场景:把
style 当作普通属性去 lint,结果发现规则全失效
- 替代方案:用 utility-first 类名(如
text-red-500)或 CSS Modules,把样式逻辑从 HTML 属性中解耦
- 若项目真大量存在内联样式,说明架构已偏离现代前端实践,优先重构比强行 lint 更有效
style 当作普通属性去 lint,结果发现规则全失效text-red-500)或 CSS Modules,把样式逻辑从 HTML 属性中解耦真正可靠的检查路径,始终是独立的 .css/.scss 文件 + 构建流程集成。HTML 中的 <style></style> 块属于过渡形态,processor 只是兜底手段,别指望它覆盖所有边界情况。










