uglifyjs可以用来压缩混淆js文件,发布release版本应用利器。在StackOverflow浏览了一下,相比Google Closure和YUI compressor,uglifyjs被推荐的更多一点,YUI已经不再更新且部分作者也加入uglifyjs开发了。
1. 安装
安装可以通过npm安装。
下载node.js安装文件:http://nodejs.org/download/
npm包含在node.js中。
安装uglifyjs:
sudo npm install uglify-js@2 -g
@2的作用是指定下载uglify-js 2.x的版本,@1为下载1.x的版本(github README上说1.x已经不再开发新功能只fix)
2. 用法
uglifyjs input1.js [input2.js ...] [options]
可以用uglifyjs --help查看用法,常用选项:
-o, --output Output file (default STDOUT). -b, --beautify Beautify output/specify output options. [string] -m, --mangle Mangle names/pass mangler options. [string] -r, --reserved Reserved names to exclude from mangling. -c, --compress Enable compressor/pass compressor options. Pass options like -c hoist_vars=false,if_return=false. Use -c with no argument to use the default compression options. [string]
-c压缩,-m混淆命名,-b格式化输出js文件(否则为只有一行),-o目标输出文件。
--wrap和--export-all选项也很有用,不过多个文件有先后执行调用顺序时可能会有问题。
例如,压缩一个文件:
uglifyjs main.js -o publish/main.js -c -m -b
压缩多个文件(支持文件夹通配符):
uglifyjs src/* main.js -o publish/min.js -c -m -b
实际发布中写个脚本自动处理压缩混淆会方便很多。