sublimeonsavebuild安装后没反应,是因为必须同时满足三要素:插件已安装、文件绑定正确语法(如source.scss)、且手动启用对应构建系统;右下角显示build system: none或text.plain时必然静默。

SublimeOnSaveBuild 安装后为什么没反应?
插件装完默认不生效,必须三要素同时满足:已安装 SublimeOnSaveBuild、当前文件绑定了正确语法(如 source.python 或 source.ts)、且构建系统已启用并被选中。右下角状态栏若显示 Build System: None 或语法是 text.plain,保存时必然静默。
- 用
Ctrl+Shift+P输入Package Control: Install Package,搜SublimeOnSaveBuild安装(注意不是On Save Build或Save Actions) - 确认文件右下角显示的是
source.ts、source.scss等,不是text.plain;可通过右键 →Set Syntax手动指定 - 必须手动设置构建系统:菜单
Tools → Build System → New Build System…,保存为ts.sublime-build或Sass.sublime-build - 保存后,再点
Tools → Build System,确保选中你刚建的那个名字,不能是Automatic或None
构建系统里 cmd 和 shell_cmd 怎么选?
二者不能混用,选错会导致命令不执行或报 Unable to find command。Windows 下多数 CLI 工具(如 tsc.cmd、sass.bat)需用 cmd 数组写法;macOS/Linux 的 sass、tsc 二进制通常走 shell_cmd 更稳。
- Windows 上推荐:
"cmd": ["tsc.cmd", "$file"]或"cmd": ["sass.bat", "$file", "--style=compressed"] - macOS/Linux 推荐:
"shell_cmd": "sass '$file' '${file_path}/${file_base_name}.css' --style=compressed" - 务必加
"selector": "source.ts"或"selector": "source.scss",否则可能对所有文件触发 - 若命令依赖项目根目录(如
tsc -p .),必须加"working_dir": "$project_path",否则找不到tsconfig.json
为什么保存后没报错但也没生成文件?
90% 是 sass 或 tsc 命令根本没被 Sublime 找到。图形界面启动的 Sublime 不继承终端的 $PATH,即使你在 iTerm 里能跑 sass --version,Sublime 也可能完全不知道这个命令在哪。
- 先在终端运行
which sass(macOS/Linux)或where sass(Windows),拿到绝对路径,比如/opt/homebrew/bin/sass或C:\Users\Me\AppData\Roaming\npm\sass.cmd - 在
.sublime-build文件里,把shell_cmd改成完整路径:"shell_cmd": "/opt/homebrew/bin/sass '$file' ..." - macOS 若用 Homebrew 安装,检查
/opt/homebrew/bin是否在系统$PATH中;Windows 若用 nvm,确保当前 Node 版本下已执行npm install -g sass - 项目路径含中文、空格或括号时,
sass常静默失败——换到纯英文路径下测试
全局启用 vs 项目级启用,哪个更安全?
全局启用(Preferences → Package Settings → SublimeOnSaveBuild → Settings)看似方便,实则容易误触非目标文件。真正可控的做法是只在项目里开,避免 JS 文件保存时意外触发 Sass 编译。
- 项目级启用:菜单
Project → Edit Project,在 JSON 里加一行:"build_on_save": true - 如果项目里有多个构建系统(如同时有 TS 和 Sass),可在每个
.sublime-build文件里单独加"enabled": true控制开关 - 不要在用户设置里设
"build_on_save": true,除非你确定所有项目都需自动构建 - 调试时可临时加
"quiet": false到构建系统中,让错误输出直接弹出面板,而不是被吞掉











