uglifyjs能够用来压缩混淆js文件,发布release版本应用利器。在StackOverflow浏览了一下,相比Google Closure和YUI compressor,uglifyjs被推荐的更多一点,YUI已经再也不更新且部分做者也加入uglifyjs开发了。node
安装能够经过npm安装。git
下载node.js安装文件:http://nodejs.org/download/github
npm包含在node.js中。npm
安装uglifyjs:spa
sudo npm install uglify-js@2 -g
@2的做用是指定下载uglify-js 2.x的版本,@1为下载1.x的版本(github README上说1.x已经再也不开发新功能只fix)code
uglifyjs input1.js [input2.js ...] [options]
能够用uglifyjs --help查看用法,经常使用选项:blog
-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目标输出文件。ci
--wrap和--export-all选项也颇有用,不过多个文件有前后执行调用顺序时可能会有问题。开发
例如,压缩一个文件:get
uglifyjs main.js -o publish/main.js -c -m -b
压缩多个文件(支持文件夹通配符):
uglifyjs src/* main.js -o publish/min.js -c -m -b
实际发布中写个脚本自动处理压缩混淆会方便不少。