stylelint 对 scss 实时报错需三步:装插件、配编辑器、写正确配置;失败主因是编辑器未显式启用 scss 验证、缺少 stylelint-scss 插件、配置文件位置或导出格式错误。

直接装、配、跑通,三步就能让 Stylelint 在项目里对 SCSS 和 CSS 实时报错——但 90% 的失败都卡在配置文件没被识别或插件没告诉编辑器“去检查 .scss”。
为什么 stylelint "**/*.scss" 能报错,但 VS Code / WebStorm 里没提示?
编辑器不会自动扫描你项目里装了什么工具,它只按你显式配置的路径和语言列表干活。
- VS Code 必须在
settings.json里加"stylelint.validate": ["css", "scss"](注意不是html或vue,除非你真在.vue里写样式) - WebStorm 要在
Settings → Languages & Frameworks → Stylesheets → Code Quality Tools → Stylelint中,手动选中node_modules/stylelint目录(不是node_modules/.bin/stylelint),否则它压根不调用你的本地安装 - Sublime Text 需在
SublimeLinter → Settings的args里写绝对路径:"--config", "/full/path/to/your/stylelint.config.js",相对路径会失效
SCSS 支持必须额外装插件,不能只靠 stylelint-config-standard
标准配置只认纯 CSS 语法,遇到 @mixin、$var、%placeholder 就直接跳过或报错。
- 装两个包:
npm install --save-dev stylelint-scss stylelint-config-standard-scss - 配置文件里
extends要同时写:["stylelint-config-standard", "stylelint-config-standard-scss"] - 必须加
plugins: ["stylelint-scss"],否则像scss/dollar-variable-pattern这类规则根本不会加载 - 如果用
@import "xxx.scss"且文件名带下划线(如_mixins.scss),要额外开规则:"scss/at-import-no-partial-leading-underscore": true
--fix 对 SCSS 文件基本无效,别指望它自动修 @mixin 或嵌套缩进
stylelint --fix 只能处理纯格式类规则,而 SCSS 特有结构几乎全在“不可自动修复”名单里。
- 能修的:单引号、分号、空格、颜色大小写(
color-hex-case) - 不能修的:
scss/at-mixin-nesting、scss/selector-no-redundant-nesting-selector、scss/dollar-variable-colon-newline-after - 强行加
--fix可能破坏 SCSS 缩进逻辑,尤其在@media块内嵌套时,缩进错位会导致编译失败 - 建议先跑
npx stylelint "**/*.scss" --max-warnings 0看真实问题,再决定哪些人工改、哪些关掉规则
配置文件放错位置或导出方式不对,Stylelint 就当它不存在
Stylelint 不递归找配置,也不支持 ESM 默认导出,哪怕内容完全正确,路径或语法错一个字符就静音。
- 必须放在项目**根目录**,文件名只能是:
stylelint.config.js、.stylelintrc.js、.stylelintrc.cjs或.stylelintrc.json -
stylelint.config.js必须用module.exports = { ... },不能用export default(Node 旧版本或某些 CI 环境会直接报错退出) - 如果用
.stylelintrc.json,就不能在rules里写函数或正则字面量(JSON 不支持),得换 JS 格式 - 配置里写
"ignoreFiles": ["src/assets/**"]比在项目根建.stylelintignore更可靠,后者容易被编辑器忽略
最常被忽略的一点:SCSS 文件若后缀是 .module.scss 或 .pcss,Stylelint 默认不处理——必须在编辑器配置里显式加上对应后缀,或在 package.json 的 lint 脚本里用双引号包裹通配符:"lint:css": "stylelint \"**/*.{css,scss,module.scss}\""。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











