stylelint 在 vscode 不报错,主因是项目未安装 stylelint 或配置文件未生效;需确保本地依赖、.stylelintrc.json 配置、语言模式(如 scss/vue)及解析器(如 postcss-scss、stylelint-config-recommended-vue)均正确就绪。

Stylelint 在 VSCode 里不报错,基本不是插件没装,而是本地项目没装 stylelint 或配置文件没生效。
VSCode 插件启用但没提示?先确认项目级依赖和配置就绪
VSCode 的 stylelint 插件只是“桥梁”,它默认调用你项目 node_modules/.bin/stylelint。如果项目没装 stylelint,插件静默失效,不会报错也不会标红。
- 在项目根目录运行:
npm install --save-dev stylelint stylelint-config-standard - 创建
.stylelintrc.json(注意名字不能是.stylelintrc.js或stylelint.config.js,除非你明确需要 JS 配置逻辑) - 内容至少包含:
{"extends": "stylelint-config-standard"} - 检查 VSCode 右下角语言模式是否为
css(不是CSS或SCSS);若开的是.scss文件,"stylelint.validate"必须包含"scss"且大小写全小写
SCSS / Vue / Svelte 单文件组件里的 style 不检查?得显式告诉 Stylelint “这是 CSS”
默认情况下,Stylelint 不会自动解析 <style lang="scss"></style> 或 <style scoped></style> 块里的内容——它只认独立的 .css、.scss 文件,除非你配了解析器和语言映射。
- 对 SCSS:安装
stylelint-config-standard-scss和postcss-scss(不是postcss),否则会报Cannot find module 'postcss'或直接跳过校验 - 对 Vue SFC:必须加
stylelint-config-recommended-vue,并在.stylelintrc.json的extends中引入;同时确保"stylelint.validate"包含"vue" - 对 Svelte:需额外配置
stylelint-processor-styled-components类似处理器,并在rules中启用"at-rule-no-unknown"等兼容规则
保存时自动修复不生效?不是 bug,是规则本身不支持 --fix
stylelint --fix 只能修复语法层面无歧义的问题,比如分号缺失、空格位置、引号风格。涉及语义判断的规则(如 declaration-block-no-duplicate-properties、selector-max-specificity)根本不会被自动修复。
- 开启自动修复需在
settings.json中加:"editor.codeActionsOnSave": {"source.fixAll.stylelint": true} - 不要指望它修命名错误(如
COLOR写成大写)、BEM 校验、或@import顺序——这些得靠人看 - 若部分规则仍不触发修复,检查是否被
"rules"里设为null,或被stylelint-config-standard的子 preset 覆盖了
Prettier 和 Stylelint 共存时冲突频发?分工必须划清
两者都管格式,不约架就打架。Prettier 负责“怎么排版”,Stylelint 负责“能不能这么写”。混用时最常踩的坑是规则重叠导致反复格式化或报错不消失。
- 在
.stylelintrc.json里禁用所有格式类规则:"indentation": null、"max-empty-lines": null、"no-multiple-empty-lines": null、"string-quotes": null - 把 Prettier 设为默认格式化器,Stylelint 设为仅校验器(即关掉它的格式化能力:
"css.format.enable": false) - Vue/SFC 场景下,
prettier-plugin-vue必须与stylelint-config-recommended-vue版本对齐,否则<style></style>块解析会失败
最容易被忽略的一点:VSCode 的 stylelint.validate 列表只对当前打开文件的语言模式生效,而不是后缀名。哪怕文件叫 index.scss,如果你右下角点成了 CSS,它就按 CSS 规则校验,$variable 直接报错——这种问题不会出现在终端 npx stylelint 检查中,纯属编辑器上下文错配。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











