Stylelint不能开箱即用,因其依赖SublimeLinter框架+SublimeLinter-stylelint插件+本地stylelint CLI三者协同:缺Node.js、未安装stylelint、路径配置错误或selector未扩展至source.scss均导致失效。

能集成,但必须走 SublimeLinter 框架 + SublimeLinter-stylelint 插件这条路,直接装个插件就生效是行不通的。
为什么 Stylelint 不能像 ESLint 那样“开箱即用”
Sublime Text 本身不解析 CSS/SCSS,所有校验都靠外部 CLI 工具驱动。SublimeLinter-stylelint 只是个“翻译器”,它把编辑器里的文件路径、内容发给本地安装的 stylelint 命令行程序执行,再把结果转成 Sublime 能显示的标记。所以:
- 如果没装 stylelint CLI,插件会报 "stylelint not found" 错误
- 如果全局安装了但 Sublime 找不到 Node.js 环境(比如 macOS 的 GUI 应用默认不读 shell profile),也会静默失败
- 项目级配置(如 .stylelintrc.json)必须放在文件所属项目的根目录下,否则插件不会自动加载
必须确认的三个执行依赖
缺一不可,顺序不能错:
- 本地已安装 Node.js(运行
node -v和npm -v能输出版本号) - 项目内或全局安装
stylelint:npm install --save-dev stylelint(推荐项目级)或npm install -g stylelint - 已通过 Package Control 安装两个插件:
SublimeLinter(框架)和SublimeLinter-stylelint(适配器)
配置 executable 路径时容易卡住的点
很多用户在 Preferences → Package Settings → SublimeLinter → Settings 里填 "executable": "stylelint" 后仍不生效,原因通常是:
- macOS 或 Linux 下,GUI 启动的 Sublime 不继承终端的
$PATH,得填绝对路径,比如/usr/local/bin/stylelint(用which stylelint查) - Windows 用户如果用 npm 全局安装,路径可能是
C:\Users\{user}\AppData\Roaming\npm\stylelint.cmd,注意扩展名不能漏 - 项目级安装时,
executable应指向node_modules/.bin/stylelint(相对路径需配合working_dir设置为项目根目录) - 别在 user settings 里写
"disable": false这种冗余项——只要 linters 对象里有stylelint子项,且没显式设"disable": true,就默认启用
想保存时自动修复?得看规则是否支持
--fix 功能不是所有规则都能用,Stylelint 14+ 才开始逐步支持。启用方式是在 linter 配置里加 args:
"stylelint": {
"args": ["--fix"]
}
但要注意:
- 仅对当前文件生效,不递归处理 import 的 SCSS partial
- 如果配置里用了
"extends": "stylelint-config-standard-scss",确保该 preset 版本 ≥ 4.0(旧版部分规则无 fixer) - 修复后可能引入格式冲突(比如缩进规则和颜色大小写规则同时触发),建议先手动跑一次
npx stylelint "**/*.scss" --fix看效果
最常被忽略的是:SublimeLinter 默认只在 .css 文件上激活 stylelint,要支持 .scss,必须在 settings 里显式加 "selector": "source.css, source.scss" —— 没这行,打开 SCSS 文件根本不会触发检查。


















