stylelint 不报错是因为校验链未启动:缺配置文件、未启用插件或文件类型未绑定,三者缺一不可;vs code 中需检查 .stylelintrc 配置、安装 stylelint 包、开启 stylelint.enable,并正确设置 stylelint.validate 和语言模式。

Stylelint 插件本身不报错,是因为校验链根本没跑起来——缺配置文件、没启用、或文件类型没绑对,三者缺一不可。
VS Code 里 Stylelint 不标红?先检查这三件事
插件只是调度器,真正干活的是项目里的 stylelint 包和配置文件。常见断点:
- 项目根目录没有
.stylelintrc.json、.stylelintrc.js或stylelint.config.js—— 没配置文件时,stylelint直接静默退出 -
package.json里没装stylelint(只装了 VS Code 插件不算):npm install --save-dev stylelint stylelint-config-standard - VS Code 设置里
stylelint.enable是false(默认值),必须手动设为true
SCSS/LESS 文件不被检查?语言模式和 validate 配置要对齐
VS Code 默认只对 .css 后缀触发 Stylelint,.scss 和 .less 需显式声明:
- 在工作区
.vscode/settings.json中添加:"stylelint.validate": ["css", "scss", "less"] - 右下角点击当前语言模式(如显示 “Plain Text” 或 “SCSS (syntax)”),手动选成小写的
scss或less—— 写成SCSS或Less会失效 - 若用
.module.scss这类后缀,需在.stylelintrc.js里加overrides并指定customSyntax: "postcss-scss"
保存时 auto-fix 只修一半?不是 bug,是规则限制
--fix 不是万能的。Stylelint 官方明确标注每条规则是否支持自动修复(✅/❌)。常见可修复项:
-
indentation:缩进空格数不对,保存即修正 -
string-quotes:单引号强制转双引号(或反之) -
color-hex-case:#FF0000→#ff0000 -
declaration-colon-space-after:冒号后缺空格自动补
但像 selector-max-id、max-line-length 这类涉及语义判断的规则,无法安全自动改,只能报错。别硬给不可修复 rule 加 fix: true —— CLI 或插件会静默忽略。
编辑器修复 vs 命令行修复,触发时机完全不同
编辑器保存时是增量、单文件、轻量级修复;命令行 npx stylelint "**/*.{css,scss,less}" --fix 是暴力全量扫,适合上线前清理。两者不互斥,但别指望保存时把整个 components/ 目录的缩进全刷一遍。
最常被忽略的一点:VS Code 的 editor.formatOnSave 默认开启,它会优先调用 Prettier(如果装了),而 Prettier 不认识 @layer 或 CSS 自定义属性语法,直接跳过,导致 Stylelint 根本没机会运行。关掉它,只开 stylelint.autoFixOnSave 才是正解。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











