Sublime怎么一键压缩JS代码 Sublime Minify插件使用教程【优化】

3次阅读

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

Sublime怎么一键压缩JS代码 Sublime Minify插件使用教程【优化】

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 是活跃维护的插件,底层调用本地 prettierterser,支持真正离线、可配置的 JS 压缩。

  • 先通过 Package Control 安装 JsPrettier
  • 确保本机已安装 tersernpm 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+Bwin/linux)或 Cmd+BmacOS)即可生成 .min.js;用 Ctrl+Shift+B 调出变体,选 Minify (in place) 覆盖原文件。

注意:terseres6+ 支持良好,但若项目含动态 import() 或 top-level await,压缩后需确认执行环境兼容性;另外,所有方案都不处理 html 内联 ,仅作用于独立 .js 文件。

text=ZqhQzanResources