Stylelint在VSCode中不报错,主因是校验链路中断:未安装本地stylelint、缺失.stylelintrc.*配置文件,或VSCode未将文件识别为scss(须小写)。

Stylelint 在 VSCode 中不报错,基本可以断定不是插件坏了,而是校验链路断在了某一个环节——最常见的是没装本地 stylelint、没配 .stylelintrc.*、或 VSCode 没把文件识别为 scss(注意小写)。
为什么装了插件却完全没提示?
VSCode 的 Stylelint 插件只是“调度器”,它本身不带规则、不带解析能力。必须同时满足三个条件才能触发检查:
-
stylelint包已安装在项目本地(npm install --save-dev stylelint),全局安装容易版本混乱,不推荐 - 项目根目录存在有效配置文件:
.stylelintrc.json、.stylelintrc.js或stylelint.config.js;没有这个文件,插件直接静默退出,不报任何错误 - VSCode 设置中
"stylelint.enable": true已启用(默认是false),且"stylelint.validate"明确列出了你要检查的类型
如何让 SCSS/LESS 文件也被检查?
VSCode 默认只对 .css 启用 Stylelint,.scss 和 .less 必须手动绑定,而且大小写敏感:
- 在工作区
.vscode/settings.json中添加:"stylelint.validate": ["css", "scss", "less"](必须全小写,"SCSS"无效) - 右下角点击当前语言模式(比如显示 “Plain Text” 或 “CSS”),手动切换为
SCSS或Less;如果误设为 “Sass” 或 “PostCSS”,stylelint.validate的条目就不起作用 - 若用
.module.scss这类自定义后缀,需在.stylelintrc.js中加overrides声明,否则文件根本不会被读取
保存时自动修复为什么只修了一半?
stylelint --fix 天然只支持“无歧义”的规则,比如分号补全、引号统一、空格调整;涉及语义判断的(如属性顺序、重复声明、选择器权重)一律不修。
- VSCode 1.84+ 已弃用
stylelint.autoFixOnSave,改用:"editor.codeActionsOnSave": { "source.fixAll.stylelint": "explicit" } - 如果修复后代码变乱,大概率是和 Prettier 冲突——建议禁用 Prettier 对 CSS 类型的格式化(
"css.format.enable": false),让 Stylelint 独占样式层 - 修复失败还可能因缺少解析器,比如报
Cannot find module 'postcss',此时要补装:npm install --save-dev postcss
Vue/Svelte 单文件组件里的
默认情况下,Stylelint 不会解析 SFC 中的 <style></style> 块,必须显式启用处理器:
- 安装:
npm install --save-dev stylelint-processor-html stylelint-processor-styled-components(按框架选) - 在
.stylelintrc.js中指定:processor: "stylelint-processor-html"(Vue)或"stylelint-processor-styled-components"(React) - 确保
stylelint.validate列表里包含"vue"或"html",否则插件压根不会把 SFC 当作目标文件
最容易被忽略的一点:VSCode 可能从 files.associations 把 .scss 文件映射成了 plaintext,导致整个校验链路失效——永远先看右下角语言模式是否正确,再查配置。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











