stylelint 16.x 已彻底移除所有格式类规则(如 indentation、string-quotes),若配置中仍引用这些已删除规则,将直接报 unknown rule 错误;必须升级 preset 至兼容版本、卸载 stylelint-config-prettier、为 scss/less 显式配置 customsyntax,并确保 vs code 插件版本 ≥1.5.0 且语言模式全小写。

Stylelint 16 直接报 Unknown rule 或 Cannot find module
Stylelint 16.x 已彻底移除所有格式类规则(如 indentation、max-line-length、string-quotes),这些规则在 v15+ 中就已被弃用,v16 中完全不存在。如果你的配置里还写着 "indentation": 2 或 extends 了 stylelint-config-standard@28 以下版本,就会触发 Unknown rule 错误。
根本原因不是“配置写错了”,而是那些规则名本身已从核心中删除。Stylelint 不再负责格式,只管质量(比如无效属性、重复声明、兼容性警告)。
- 检查
stylelint.config.js里是否还在用已删规则:运行npx stylelint --version确认是 16.x,再逐条对照 官方迁移指南 删掉indentation、no-multiple-empty-lines、declaration-block-trailing-semicolon等 -
extends的 preset 必须是 v15+ 兼容版:旧版stylelint-config-standard(如 v27 及更早)不支持 v16;换成stylelint-config-standard@34+或直接用stylelint-config-recommended(官方最小集) - 如果用了
stylelint-config-prettier,立刻卸载:npm uninstall stylelint-config-prettier—— 它在 v15+ 中已无作用,且会干扰加载
SCSS/LESS 配置失效,嵌套语法全标红
Stylelint 16 默认只解析标准 CSS 语法。遇到 &:hover、@mixin、$var 就直接报错,不是 bug,是没告诉它“这是 SCSS”。
必须显式指定 customSyntax,且该包要支持 v16:
- SCSS 项目:装
postcss-scss@9+(注意不是postcss-sass),配置里写customSyntax: "postcss-scss" - LESS 项目:装
postcss-less@6+,配置里写customSyntax: "postcss-less" - 别混用 preset:
stylelint-config-standard-scss才含scss/*规则;若 extendsstylelint-config-standard,所有 SCSS 特性都会被当成错误
VS Code 不报错,但 CLI 能跑通
这说明插件链路断在编辑器侧,不是配置本身问题。VS Code 的 stylelint.vscode-stylelint 插件默认调用项目 node_modules/stylelint,但 Stylelint 16 的模块导出方式变了。
关键检查点:
- 确认插件版本 ≥ 1.5.0(2026 年 4 月后发布),老版本不识别 v16 的 ESM 导出结构
-
settings.json中禁用"editor.formatOnSave": false—— 否则 Prettier 抢先处理,Stylelint 根本没机会解析 - 右下角语言模式必须是
css、scss或less(全小写),不能是CSS或Plain Text - 若用
.stylelintrc.js,确保导出是module.exports = { ... },ESM 项目慎用.mjs后缀
CI 中 glob 匹配失败或规则静默不生效
Stylelint 16 对 glob 解析更严格,尤其在 shell 环境差异大的 CI(如 GitHub Actions Ubuntu runner)中,"**/*.css" 可能不展开,导致 No files matching the pattern were found。
实操建议:
- 显式列出路径:
npx stylelint src/**/*.css src/**/*.scss --fix,避免依赖 shell 展开 - 规则设为
null才是关闭,写false或0会导致整个配置加载失败 - 若用了
overrides,确保files模式匹配实际路径(如"**/*.module.css"),且对应customSyntax已安装 - CI 日志里加
npx stylelint --version和ls -la node_modules/stylelint,确认装的是 v16.x 且文件完整
customSyntax,都会让整个 lint 过程中断,而不是跳过某条规则。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











