sublime text 本身不提供 css 一键规范化排版能力,stylelint 仅校验和修复语法/结构问题(如分号、引号、缩进),不处理属性顺序、嵌套层级或格式美化;需搭配 prettier 或 csscomb 实现排版,且 scss 中 max-nesting-depth 等规则需 stylelint-scss 插件、customsyntax 和 plugins 配置三者齐备才生效。

Sublime Text 本身不提供 CSS 样式“一键规范化排版”能力,Stylelint 也不做排版(如属性重排序、选择器拆分、格式美化),它只校验和修复语法/结构类问题。所谓“一键排版”,实际是误把 Prettier 或 CSScomb 的功能套在 Stylelint 头上。
为什么保存后样式没自动重排、属性顺序不变
Stylelint 的 --fix 不处理属性顺序、不调整选择器嵌套层级、不合并重复声明——这些属于语义重构,不在其设计范围内。你看到的“修复”仅限于:
- 补全缺失的分号(
declaration-block-trailing-semicolon) - 统一引号(
string-quotes) - 修正缩进空格数(
indentation) - 删除行尾空格(
no-trailing-spaces) - 转换颜色写法(
color-hex-case)
如果你需要属性按字母或约定顺序排列,得额外配 stylelint-order 插件,并在规则里显式启用 order/properties-order;但即使如此,它也不会“智能重排”带逻辑分组的区块(比如把 display 和 visibility 拉到一起),只是机械匹配你定义的数组顺序。
SCSS 文件里 max-nesting-depth 完全不报错
这是最常被忽略的断链点:max-nesting-depth 默认只分析标准 CSS 语法,对 SCSS 的 &__item、@mixin、@include、变量插值等一概无视,结果就是静默跳过——连 warning 都不会抛。
要让它生效,必须同时满足三项:
- 安装
stylelint-scss(npm install --save-dev stylelint-scss) - 配置中指定
customSyntax: "postcss-scss"(不能是postcss-less或留空) - 启用插件
plugins: ["stylelint-scss"],否则嵌套计数器压根不启动
缺任意一项,max-nesting-depth 在 .scss 文件里就等于不存在。
Sublime 保存时“自动修复”只修一半
根本原因有两个:
-
SublimeLinter-contrib-stylelint默认关闭--fix-on-save,必须手动在 SublimeLinter 设置里加参数:"args": ["--fix-on-save"] - Stylelint 14+ 才真正支持
--fix-on-save,旧版本即使加了参数也无效;确认项目里node_modules/.bin/stylelint --version输出 ≥14
另外注意:.scss 文件右下角语言模式必须是 SCSS(不是 Sass 或 Plain Text),否则 SublimeLinter 根本不触发该文件的 lint 流程——状态栏显示 Plain Text 是第一排查信号。
配置文件存在但规则完全不生效
Stylelint 不会向上递归查找配置,只认当前工作目录下的合法文件名:
- 接受的文件名只有:
stylelint.config.js、.stylelintrc.js、stylelint.config.cjs、.stylelintrc.json(注意点号) -
module.exports = { ... }是安全写法;export default在部分 Node 版本下会失败,尤其搭配 ESM 项目时 - 如果用
extends,确保被继承的包已安装,例如用了"stylelint-config-standard-scss"就必须npm install --save-dev stylelint-config-standard-scss
最容易被忽略的是:Sublime 的“当前工作目录”未必是你认为的项目根目录——它取决于你用哪个路径启动 Sublime,或者是否通过右键菜单 > “Open with Sublime Text” 打开文件夹。建议始终从项目根目录执行 subl . 启动编辑器。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











