Node+UglifyJS批量压缩js
在前面雷雪松的博客中已经介绍了《WEB前端开发优化技巧》。JS文件压缩似乎成了最基础的优化药店之一了。现在JS使用的频率越来越高,JS文件越来越大,压缩所带来的性能提升也是越来越明显,下面雷雪松就详细介绍下如何使用NodeJs和UglifyJS来压缩JS代码。
1、Uglifyjs简介
UglifyJS 是一个Javascript开发的通用的语法分析、代码压缩、代码优化的一个工具包。
2、UglifyJS安装,在NodeJS环境下使用npm全局安装UglifyJS
[cc lang=”dos” escaped=”true”]npm install uglify-js -g[/cc]
参数:
[cc lang=”text” escaped=”true”]* 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, 忽略错误命令行参数。[/cc]
3、Uglifyjs压缩JS,例如将customize.js压缩输出到customize-min.js文件中
[cc lang=”dos” escaped=”true”]uglifyjs customize.js -m -o customize-min.js[/cc]
4、对文件夹下面的所有JS文件压缩,windows使用bat批处理,linux可以使用shell,或者直接利用Node下面的fs模块。
Windows下面的bat处理脚本。(注意:备份原JS文件,压缩的JS文件会直接替换原JS文件)
[cc lang=”dos” escaped=”true”]@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[/cc]
2016年11月21日 下午5:34
使用NodeJs和UglifyJS来压缩JS代码经典教材
2016年11月22日 上午2:19
66666,又是一个技术类博客啊,博主加油
2016年12月8日 下午8:24
感谢楼主的分享。 赞赞。
2019年5月10日 下午9:45
前排留名,先回再看。等了好久额的新文章。