uglifyjs note

时间:2023-03-09 07:21:47
uglifyjs note

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