stylelint本身不自动规范代码质量,仅按配置规则检查、报错并部分修复;VSCode插件需依赖本地实例、有效配置及正确文件识别,否则90%问题源于链路中断。

stylelint 本身不自动“规范”代码质量,它只按你配置的规则**检查 + 报错 +(部分)修复**。VSCode 插件只是把这套能力实时带进编辑器,但插件没反应、修不对、不报错——90% 是链路断在某一个环节。
VSCode 插件没提示?先确认这三件事
插件装了≠能用。它依赖本地 stylelint 实例、有效配置、以及文件被正确识别:
- 项目根目录必须存在
.stylelintrc.js或stylelint.config.js等效配置文件;空配置或只写{}也会导致静默失效 -
package.json中已安装stylelint(不是只装了 VSCode 插件),且版本 ≥16.0(2026 年主流环境要求 Node ≥18.12) - VSCode 设置中
stylelint.enable必须为true;右下角语言模式要显示为CSS或SCSS,不是plaintext或Plain Text
为什么 .module.css /
stylelint 默认只处理 .css、.scss、.sass、.less 文件,对 .module.css、.pcss 或 Vue/Svelte 单文件组件里的 <style> 块完全忽略——它连文件都不会读。
- 对于
.module.css,在配置中加overrides显式声明:{ "overrides": [ { "files": ["**/*.module.css"], "customSyntax": "postcss-less" } ] } - Vue SFC 需启用
stylelint-config-recommended-vue,并在配置中extends它;Svelte 同理需stylelint-config-svelte - React 中用 styled-components?必须装
stylelint-processor-styled-components,并在配置里写"processor": "stylelint-processor-styled-components"
自定义规则后仍不生效?重点看这几点
规则写进配置 ≠ 立即起作用。常见卡点在继承、覆盖逻辑和插件加载:
-
rules里设为null表示禁用;设为false是无效写法,会被忽略 - 用
selector-class-pattern强制 kebab-case?正则必须匹配整个类名,比如"^[a-z][a-z0-9]*(-[a-z0-9]+)*$";.is-active这种双连字符需额外加"ignore": ["consecutive-dashes"] - 启用
stylelint-scss插件后,必须在配置中显式声明:"plugins": ["stylelint-scss"],否则所有scss/xxx规则都不加载 - 想让
--fix修color-hex-case,但保存时不触发?关掉 VSCode 内置 CSS 格式化器(editor.defaultFormatter设为stylelint.vscode-stylelint),并确认stylelint.autoFixOnSave已开启
CI 或终端里 stylelint 命令报错?路径和解析器最常背锅
本地能跑,CI 报 Unknown word 或 Cannot find module 'postcss',基本是环境或路径问题:
立即学习“前端免费学习笔记(深入)”;
-
npx stylelint "**/*.scss"中的引号必须保留,否则 shell 可能提前展开通配符,导致路径错误 - SCSS 文件报错?装
postcss-scss并在配置中写"customSyntax": "postcss-scss";否则stylelint按纯 CSS 解析器读,直接崩 - CI 脚本若
cd到子目录再执行stylelint,它会从当前目录向上找配置,可能找不到根目录的.stylelintrc.js—— 改成npx stylelint --config .stylelintrc.js "src/**/*.css"更可靠
customSyntax 和 processor 的显式声明;VSCode 插件不会帮你猜你用的是什么语法,它只忠实地执行你写的配置。写错一个引号、漏一个 plugins 数组、或路径没引起来,整条链就断了。


















