uglifyjs
UglifyJS is a JavaScript parser, minifier, compressor or beautifier toolkit.
uglifyjs是用js写的js压缩工具, 它包含下列一些工具:- parser 从js代码生成
AST
(抽象语法树) - code generator 从
AST
生成js代码 - compressor 优化
AST
压缩代码 - mangle 局部变量混淆 变为单字母
- scope analyzer 作用于分析
- tree walker 允许我们遍历
AST语法树
的节点 做点有意思的事情 - tree tranformer 转换语法树
安装
npm install uglify-js //本地安装npm install -g uglify-js //全局安装 之后 可以在命令行直接调用 uglifyjs
使用
//建议options放后面,可输入多个js文件 在同一全局作用域解析它们uglifyjs [input files] [options] //若将选项放前面 则需用 -- 分隔一下,输入的jsuglifyjs --compress --mangle -- input.js//查看帮助 uglifyjs -h
示例
//压缩 混淆 并输出 source-map文件 uglifyjs script.js -o script.min.js -c -m --source-map script.min.js.mapscript.min.js 包含:many codes...//# sourceMappingURL=script.min.js.map//多个js 压缩合并为1个jsuglifyjs f1.js f2.js -o fs.min.js -c -m --source-map fs.min.js.map//美化代码 不压缩成1行uglifyjs f1.js f2.js -o fsb.min.js -c -m -b//添加序言 --preamble somewords 不能有空格uglifyjs script.js -o script1.min.js -c -m --source-map script.min.js.map --preamble /*modify_at:2015-06-18*///指定source-map-url 然后用http-server在out.min.js所在文件夹,启动httpServeruglifyjs script.js -o out.min.js -c -m --source-marp out.min.js.map --source-map-url http://localhost:8080/out.min.js.map --preamble /*modify_at:2015-06-18_23:11:10*///--source-map-root 指定js源文件的所在路径或urluglifyjs /home/doe/work/foo/src/js/file1.js \ /home/doe/work/foo/src/js/file2.js \ -o foo.min.js \ --source-map foo.min.js.map \ --source-map-root http://foo.com/src \ -p 5 -c -m