Node+UglifyJS批量压缩js

分类:WEB前端 时间:

在前面PHP程序员雷雪松的博客中已经介绍了《WEB前端开发优化技巧》。JS文件压缩似乎成了最基础的优化药店之一了。现在JS使用的频率越来越高,JS文件越来越大,压缩所带来的性能提升也是越来越明显,下面PHP程序员雷雪松就详细介绍下如何使用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

标签:
来源:Node+UglifyJS批量压缩js

3 评论 “Node+UglifyJS批量压缩js

    商学院 评论:
    2016年11月21日 下午5:34

    使用NodeJs和UglifyJS来压缩JS代码经典教材

    IT技术网 评论:
    2016年11月22日 上午2:19

    66666,又是一个技术类博客啊,博主加油

    magic essay 评论:
    2016年12月8日 下午8:24

    感谢楼主的分享。 赞赞。

发表评论

电子邮件地址不会被公开。 必填项已用*标注