Stylelint 默认不解析 Vue 文件中的 <style> 块,需配置 stylelint-processor-html 提取样式,但该处理器不支持 scoped 或 lang="scss",后者还需 customSyntax: "postcss-scss";VS Code 需设置 "stylelint.validate": ["vue"];--fix 会清空 .vue 文件其余内容,属处理器缺陷,建议禁用 --fix 或改用构建时集成方案;内联 style 属性不被检查。

Stylelint 默认不解析 Vue 文件中的
Stylelint 本身只处理纯 CSS 源码字符串,它不解析 HTML 或 Vue 这类模板文件的 AST 结构。哪怕你写了 <style lang="scss">,只要文件后缀是 .vue,Stylelint 就不会主动提取其中的样式内容——它根本“看不见”<style> 标签。
没配 processor 就等于没告诉 Stylelint “这里有 CSS”
Vue 单文件组件里的 CSS 必须靠外部处理器(如 stylelint-processor-html)来提取 <style> 块并喂给 Stylelint。但注意:
-
stylelint-processor-html只支持标准<style>,不处理<style scoped>或<style lang="scss"> - 若用了
lang="scss",必须额外配customSyntax: "postcss-scss"并安装postcss-scss - VS Code 中还需在
settings.json里加"stylelint.validate": ["vue"],否则插件压根不触发
--fix 会删光 Vue 文件内容,这是已知 bug
用 stylelint-processor-html 配合 --fix 会导致整个 .vue 文件只剩 CSS,其余部分(<template>、<script>)全被清空。这不是配置问题,而是该 processor 的实现缺陷。
解决方案只有两个:
Vue 3 组合式 API 与 最佳实践,涵盖代码组织、useXxx 模式、组合式函数设计、Store 集成、响应式优化及功能抽取。
立即学习“前端免费学习笔记(深入)”;
- 禁用
--fix,改用手动修复或仅对独立 CSS/SCSS 文件启用自动修复 - 改用构建时集成方案(如
stylelint-webpack-plugin),它不走 processor 路径,不会破坏文件结构
内联 style 属性永远不被检查
<div style="color: red"> 这类写法 Stylelint 完全忽略——不是漏了,是设计上就不支持。
原因很实际:
- HTML 属性值里混着 JS 插值、转义、模板语法,没有稳定 parser 能安全分离出 CSS 声明
- 自动修复会污染 HTML 结构(比如往
style属性里加空格或改单位),得不偿失 - 现代工程实践中,内联样式本就该被 CSS Modules 或 utility-first 类名替代
.css、.scss 文件和构建流程里的校验环节。Vue 文件里的 <style> 是边缘场景,能检查已是额外收益,别指望它和纯 CSS 文件一样健壮。

















