
Stylelint 升级至 v15.11.0 后,原生 order/* 规则被移除,需通过 stylelint-order 插件重新启用属性顺序校验,本文详解迁移步骤、配置写法及最佳实践。
stylelint 升级至 v15.11.0 后,原生 `order/*` 规则被移除,需通过 `stylelint-order` 插件重新启用属性顺序校验,本文详解迁移步骤、配置写法及最佳实践。
Stylelint v15.x 是一次重大架构演进版本,官方移除了内置的 order/order 和 order/properties-alphabetical-order 等排序规则(因其逻辑复杂且维护成本高),转而鼓励社区插件化扩展。这意味着:你此前在 .stylelintrc.json 中禁用的 "order/order": null 和 "order/properties-alphabetical-order": null,在 v15.11.0 中已彻底不存在——它们不再是有效规则名,因此触发 “Unknown rule” 错误。
✅ 正确解决方案是引入并配置社区维护的权威插件:stylelint-order。该插件完全兼容 Stylelint v15+,提供更灵活、可定制的声明与属性排序能力。
1. 安装依赖
npm install --save-dev stylelint-order # 或使用 yarn yarn add --dev stylelint-order
2. 更新配置文件(.stylelintrc.json)
移除已废弃的 stylelint-config-recommended 和 stylelint-config-prettier(v15+ 已整合基础推荐规则,并默认禁用格式化冲突规则),并显式声明插件与规则:
{
"extends": [
"stylelint-config-standard", // ✅ 替代 stylelint-config-recommended(v15+ 官方推荐)
"stylelint-config-sass-guidelines"
],
"plugins": ["stylelint-order"],
"rules": {
"order/order": [
"custom-properties",
"dollar-variables",
"declarations",
"at-rules",
"rules"
],
"order/properties-order": [
"display",
"position",
"top",
"right",
"bottom",
"left",
"z-index",
"flex",
"flex-grow",
"flex-shrink",
"flex-basis",
"width",
"height",
"max-width",
"max-height",
"margin",
"padding",
"border",
"background",
"color",
"font",
"text-align"
]
}
}
? 注意事项:
- stylelint-config-standard 是 v15+ 官方维护的现代推荐配置,替代了已归档的 stylelint-config-recommended;
- stylelint-config-prettier 在 v15+ 中已不再需要——Stylelint 自身已规避与 Prettier 的规则冲突;
- order/properties-order 替代了旧版 order/properties-alphabetical-order,支持按语义分组或自定义优先级排序,更符合实际开发习惯;
- 若需严格按字母序排列(如团队强约定),可配合 @stylistic/stylelint-plugin 使用 stylistic/declaration-block-properties-alphabetical-order 规则(需额外安装)。
3. 验证与调试
运行检查命令确认生效:
npx stylelint "**/*.{css,scss,sass,less}" --fix
若仍有报错,请检查 Node.js 版本(v15+ 要求 Node ≥ 14.13)、插件是否拼写正确,以及 stylelint-order 是否为最新稳定版(建议 ≥ 6.0.0)。
? 总结:Stylelint v15 不是“破坏性升级”,而是“模块化进化”。放弃内置排序规则,换以更专业、可扩展的插件生态,反而提升了配置的清晰度与可控性。迁移后,你不仅能恢复原有秩序约束,还能基于业务语义精细化定义 CSS 属性层级,让样式代码真正“有章可循”。











