Sublime Text 4无法使用Sublime Minify插件,因其依赖已淘汰的Python 2和下线jsmin服务;推荐方案为JsPrettier+terser或自建SublimeBuild系统调用terser实现离线JS压缩。

Sublime Text 本身不内置 JS 压缩功能,Sublime Minify 插件早已停止维护,且在 Sublime Text 4 中无法安装或运行——直接装它,大概率失败。
为什么 Sublime Minify 插件现在基本不能用
该插件依赖 Python 2 和已下线的 jsmin 在线服务,Sublime Text 4 默认使用 Python 3,且其 Package Control 仓库已移除该插件。即使手动安装,也会报错:
ImportError: No module named 'urllib2'
或触发超时、403 禁止访问等网络错误。它不是“配置不对”,而是底层已失效。
替代方案:用 JsPrettier + 自定义压缩命令(推荐)
JsPrettier 是活跃维护的插件,底层调用本地 prettier 或 terser,支持真正离线、可配置的 JS 压缩。
- 先通过 Package Control 安装
JsPrettier - 确保本机已安装
terser:npm install -g terser - 打开
Preferences → Package Settings → JsPrettier → Settings - 在用户设置中加入:
{
"auto_indent": false,
"auto_wrap": 0,
"node_path": "/usr/local/bin/node",
"prettier_cli_path": "/usr/local/bin/terser",
"additional_cli_args": {
"--compress": true,
"--mangle": true,
"--format": "{\"semicolons\":true}"
}
}
保存后,选中 JS 代码 → 右键 → JsPrettier,即可输出压缩结果(不带换行、无空格、变量名缩短)。
更轻量的选择:用 SublimeBuild 直接调用 terser
如果不想装大插件,可自建构建系统,一键压缩当前文件:
- 菜单栏选择
Tools → Build System → New Build System… - 粘贴以下内容(路径按你本机
terser实际位置调整):
{
"cmd": ["terser", "$file", "-o", "${file_path}/${file_base_name}.min.js", "--compress", "--mangle"],
"selector": "source.js",
"working_dir": "$file_path",
"variants": [
{
"name": "Minify (in place)",
"cmd": ["terser", "$file", "-o", "$file", "--compress", "--mangle"]
}
]
}
保存为 TerseJS.sublime-build,之后按 Ctrl+B(Win/Linux)或 Cmd+B(macOS)即可生成 .min.js;用 Ctrl+Shift+B 调出变体,选 Minify (in place) 覆盖原文件。
注意:terser 对 ES6+ 支持良好,但若项目含动态 import() 或 top-level await,压缩后需确认执行环境兼容性;另外,所有方案都不处理 HTML 内联 ,仅作用于独立 .js 文件。










