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]
//若将选项放前面 则需用 -- 分隔一下,输入的js
uglifyjs --compress --mangle -- input.js
//查看帮助
uglifyjs -h
示例
//压缩 混淆 并输出 source-map文件
uglifyjs script.js -o script.min.js -c -m --source-map script.min.js.map
script.min.js 包含:
many codes...
//# sourceMappingURL=script.min.js.map
//多个js 压缩合并为1个js
uglifyjs 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所在文件夹,启动httpServer
uglifyjs 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源文件的所在路径或url
uglifyjs /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