Node+UglifyJS批量压缩js
在前面雷雪松的博客中已经介绍了《WEB前端开发优化技巧》。JS文件压缩似乎成了最基础的优化药店之一了。现在JS使用的频率越来越高,JS文件越来越大,压缩所带来的性能提升也是越来越明显,下面雷雪松就详细介绍下如何使用NodeJs和UglifyJS来压缩JS代码。
1、Uglifyjs简介
UglifyJS 是一个Javascript开发的通用的语法分析、代码压缩、代码优化的一个工具包。
2、UglifyJS安装,在NodeJS环境下使用npm全局安装UglifyJS
1 | npm install uglify-js -g |
参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | * source-map [string],生成source map文件。 * –source-map-root [string], 指定生成source map的源文件位置。 * –source-map-url [string], 指定source map的网站访问地址。 * –source-map-include-sources,设置源文件被包含到source map中。 * –in-source-map,自定义source map,用于其他工具生成的source map。 * –screw-ie8, 用于生成完全兼容IE6-8的代码。 * –expr, 解析一个表达式或JSON。 * -p, –prefix [string], 跳过原始文件名的前缀部分,用于指定源文件、source map和输出文件的相对路径。 * -o, –output [string], 输出到文件。 * -b, –beautify [string], 输出带格式化的文件。 * -m, –mangle [string], 输出变量名替换后的文件。 * -r, –reserved [string], 保留变量名,排除mangle过程。 * -c, –compress [string], 输出压缩后的文件。 * -d, –define [string], 全局定义。 * -e, –enclose [string], 把所有代码合并到一个函数中,并提供一个可配置的参数列表。 * –comments [string], 增加注释参数,如@license、@preserve。 * –preamble [string], 增加注释描述。 * –stats, 显示运行状态。 * –acorn, 用Acorn做解析。 * –spidermonkey, 解析SpiderMonkey格式的文件,如JSON。 * –self, 把UglifyJS2做为依赖库一起打包。 * –wrap, 把所有代码合并到一个函数中。 * –export-all, 和–wrap一起使用,自动输出到全局环境。 * –lint, 显示环境的异常信息。 * -v, –verbose, 打印运行日志详细。 * -V, –version, 打印版本号。 * –noerr, 忽略错误命令行参数。 |
3、Uglifyjs压缩JS,例如将customize.js压缩输出到customize-min.js文件中
1 | uglifyjs customize.js -m -o customize-min.js |
4、对文件夹下面的所有JS文件压缩,windows使用bat批处理,linux可以使用shell,或者直接利用Node下面的fs模块。
Windows下面的bat处理脚本。(注意:备份原JS文件,压缩的JS文件会直接替换原JS文件)
1 2 3 4 5 6 7 8 9 10 | @echo off :: 设置压缩JS文件的根目录,会自动压缩所有的JS文件 SET JSFOLDER=D:\javascript chdir /d %JSFOLDER% for /r . %%a in (*.js) do ( @echo 正在压缩 %%~a ... uglifyjs %%~fa -m -o %%~fa ) echo 完成! pause & exit |
2016年11月21日 下午5:34
使用NodeJs和UglifyJS来压缩JS代码经典教材
2016年11月22日 上午2:19
66666,又是一个技术类博客啊,博主加油
2016年12月8日 下午8:24
感谢楼主的分享。 赞赞。
2019年5月10日 下午9:45
前排留名,先回再看。等了好久额的新文章。