Sublime Text 同时启用 CSSLint 和 JSHint 校验需满足三条件:①jshint 与 csslint 在终端可执行且版本正常;②先装 SublimeLinter 框架并重启,再装 SublimeLinter-jshint 和 SublimeLinter-csslint;③通过 Settings – User 显式配置 executable 绝对路径或修正 env.PATH,否则 GUI 进程因环境变量隔离而静默失效。

Sublime Text 要同时启用 CSSLint 和 JSHint 校验,不是装两个插件就完事——核心卡点在环境链路是否打通,尤其 jshint 和 csslint 命令必须能在 Sublime 的 GUI 进程里被找到,否则静默失效。
确保 jshint 和 csslint 在终端可执行
这两个工具是 Node.js 生态的 CLI 工具,SublimeLinter-jshint / SublimeLinter-csslint 插件本身不带它们,只负责调用系统 PATH 中的可执行文件:
- 打开终端(macOS/Linux)或 Node.js command prompt(Windows),运行
jshint --version和csslint --version,都应输出版本号 - 若报
'jshint' is not recognized或command not found,说明没装或没进 PATH - 正确安装方式:
npm install -g jshint csslint(Windows 请以管理员身份运行 CMD;macOS/Linux 若权限报错,不要用sudo npm install -g,改用nvm或corepack管理全局 bin) - Node.js 版本建议 v14–v20:jshint 对 v20+ 支持稳定,但已停止维护;csslint 更老,v0.10.x 是最后兼容版本,别装最新版(会报
ReferenceError: console is not defined)
SublimeLinter 插件安装顺序与依赖关系
SublimeLinter 是框架,SublimeLinter-jshint 和 SublimeLinter-csslint 是独立插件,必须按顺序加载:
- 先装
SublimeLinter(它只是调度器,不检查任何代码) - 重启 Sublime Text(部分版本不重启会导致后续插件注册失败)
- 再装
SublimeLinter-jshint和SublimeLinter-csslint(可一次装完,无先后要求) - 装完后打开一个
.js文件和一个.css文件,分别制造语法错误(如var a = ;、div { color: #fff缺少}),看行号区是否有红点 - 如果只有 JS 有提示、CSS 没反应,大概率是
csslint命令没被识别,不是插件没装
PATH 不一致导致 GUI 应用找不到命令(尤其 macOS / Linux 桌面环境)
终端能跑 ≠ Sublime 能调用,因为 GUI 启动时的 PATH 通常比终端精简(比如 macOS 的 LaunchServices 不加载 shell profile):
立即学习“前端免费学习笔记(深入)”;
- 打开
Preferences → Package Settings → SublimeLinter → Settings – User - 写死路径比依赖 PATH 更可靠:
{
"jshint": {
"executable": "/usr/local/bin/jshint"
},
"csslint": {
"executable": "/usr/local/bin/csslint"
}
}
Windows 用户注意路径分隔符:"executable": "C:\Program Files\nodejs\node_modules\.bin\csslint.cmd"(.cmd 后缀不能省)
- 如果坚持用
env.PATH,macOS 可填"/usr/local/bin:/opt/homebrew/bin",Linux 建议查echo $PATH后复制完整路径 - 别信“已安装”,务必验证:在 Sublime 控制台(
Ctrl+`)里执行import subprocess; subprocess.run(['jshint', '--version']),看是否返回成功
校验模式与实际触发时机
默认是实时校验(lint_mode 为 background),但对老项目或大文件可能卡顿:
- 右键代码编辑区 →
SublimeLinter → Lint Mode → Save Only,改成仅保存时触发 - 想关掉某类校验?右键 →
SublimeLinter → Toggle Linter,选jshint或csslint单独开关 - 如果 .js 文件里写了 CSS(比如内联 style),
csslint不会管——它只响应.css后缀或text/css语法高亮的 buffer - 自定义配置文件(如
.jshintrc、.csslintrc)必须用绝对路径写在args里,例如:"args": ["--config", "/Users/you/project/.jshintrc"]
最容易被忽略的是:Sublime 的 GUI 环境变量和终端不共享,哪怕你 Terminal 里 which jshint 输出正确,Sublime 仍可能找不到。验证永远比猜测快——直接在控制台跑 subprocess 调用,比反复重启、重装插件高效得多。


















