sublime text调不到stylelint,因默认查找项目内node_modules/.bin/stylelint而非全局安装;需确认npx stylelint --version有输出、.scss文件语法设为scss、配置customsyntax和plugins支持嵌套检测,并启用--fix-on-save。

Sublime Text 调不到 stylelint?先确认它真在你项目里
不是插件没装,而是 SublimeLinter 默认找的是 node_modules/.bin/stylelint(项目本地),不是全局安装的。终端里 stylelint --version 能跑 ≠ Sublime 就能调到。
- 进你的项目根目录,运行
npx stylelint --version,有输出才算到位 - 如果报错
command not found,立刻执行npm install --save-dev stylelint stylelint-scss stylelint-config-standard-scss - 别只装全局版:
npm install -g stylelint对 SublimeLinter 无效
SCSS 文件根本没被识别?语法类型必须手动设为 SCSS
Sublime 默认把 .scss 当作 Plain Text,不触发任何校验——这是 70% “不报错” 问题的根源。
- 打开任意
.scss文件,看右下角状态栏显示什么;如果是Plain Text或Sass,点它 → 选SCSS(注意拼写,不是Sass) - 确保已安装并启用 SCSS 语法高亮插件(如官方
SCSS插件,不是Sass) - 检查
Preferences → Package Settings → SublimeLinter → Settings中"scopes"是否包含"source.scss"
max-nesting-depth 不生效?SCSS 嵌套深度检测要三要素齐备
直接写 "max-nesting-depth": 3 在 SCSS 里等于没写——它默认只认 CSS 选择器层级,对 &__item、@mixin、@include 完全无视。
- 必须安装
stylelint-scss插件(仅靠stylelint-config-standard-scss不够) -
stylelint.config.js中必须声明customSyntax: "postcss-scss" - 必须显式启用插件:
plugins: ["stylelint-scss"] - 示例最小有效片段:
module.exports = { plugins: ["stylelint-scss"], customSyntax: "postcss-scss", rules: { "max-nesting-depth": [4, { ignore: ["at-rules"] }] } };
保存后只修一半?--fix-on-save 有硬性前提和能力边界
stylelint --fix 不是万能格式化器,它只修语法层面可确定的项(比如缺分号、引号不统一、空格数不对),绝不会动语义结构(比如重排属性顺序、拆嵌套、合并重复声明)。
- 确保配置中
"args"包含"--fix-on-save"(不是--fix) - 该参数只在 SublimeLinter-contrib-stylelint v4.2+ 且 stylelint v15+ 中稳定支持
- 修复失败常见原因:配置文件路径错(
--config后必须是绝对路径)、规则本身不可自动修复(如selector-max-id)、或文件编码非 UTF-8
真正卡住人的地方往往不在配置本身,而在 Node 环境隔离——图形界面启动的 Sublime 读不到你 shell 里 nvm use 切的版本,which 返回的路径可能指向另一套 Node,这点 macOS 用户尤其容易栽跟头。











