CSS和JS文件经常需要压缩,比如我们看到的XX.min.js是经过压缩的JS。
压缩文件第一个是可以减小文件大小,第二个是对于JS文件,默认会去掉所有的注释,而且会去掉所有的分号,也会将我们的一些参数替换为一些简单的a,b之类的变量,从界面看起来非常难阅读,起到加密作用。
常见的有好多压缩工具,这里使用yui进行压缩,首先需要下载yui的包: yuicompressor-2.4.7.jar ,可以到我的服务器下载:http://qiaoliqiang.cn/fileDown/yuicompressor-2.4.7.zip
G:\>java -jar yuicompressor-2.4.7.jar Usage: java -jar yuicompressor-x.y.z.jar [options] [input file] Global Options -h, --help Displays this information --type <js|css> Specifies the type of the input file --charset <charset> Read the input file using <charset> --line-break <column> Insert a line break after the specified column number -v, --verbose Display informational messages and warnings -o <file> Place the output into <file>. Defaults to stdout. Multiple files can be processed using the following syntax: java -jar yuicompressor.jar -o ‘.css$:-min.css‘ *.css java -jar yuicompressor.jar -o ‘.js$:-min.js‘ *.js JavaScript Options --nomunge Minify only, do not obfuscate --preserve-semi Preserve all semicolons --disable-optimizations Disable all micro optimizations If no input file is specified, it defaults to stdin. In this case, the ‘type‘ option is required. Otherwise, the ‘type‘ option is required only if the input file extension is neither ‘js‘ nor ‘css‘.
默认会去掉所有的注释,而且会去掉所有的分号,也会将我们的一些参数替换为一些简单的a,b之类的变量,起到加密作用。
JS内容:
/** * 验证密码和账户 */ function validate2(username, password) { if (username != "zhangsan") { alert("userName is error:" + c) } if (password != "123456") { alert("password is error:" + d) } };
源文件大小:220字节
进行压缩:
G:\>java -jar yuicompressor-2.4.7.jar index.js -v -o index-min.js --charset UTF-8
参数解释:
index.js 需要压缩的源文件
-v -o 显示信息与指定输出文件名字
index-min.js 压缩后的文件
--charset 指定编码格式
压缩后文件内容和大小:(被压缩成一行,注释被去掉,分号也被去掉)
function validate2(b,a){if(b!="zhangsan"){alert("userName is error:"+c)}if(a!="123456"){alert("password is error:"+d)}};
大小为:120字节
我们也可以保留分号: --preserve-semi 参数
G:\>java -jar yuicompressor-2.4.7.jar index.js -v --preserve-semi -o index-min.js --charset UTF-8 [WARNING] The symbol c is declared but is apparently never used. This code can probably be written in a more compact way. username!="zhangsan"){alert("userName is error:"+ ---> c <--- );}if(password!="123456"){ [WARNING] The symbol d is declared but is apparently never used. This code can probably be written in a more compact way. password!="123456"){alert("password is error:"+ ---> d <--- );}}
压缩后内容:
function validate2(b,a){if(b!="zhangsan"){alert("userName is error:"+c);}if(a!="123456"){alert("password is error:"+d);}}
G:\>java -jar yuicompressor-2.4.7.jar index.css -v -o index1-min.css --charset UTF-8
也可以写成bat脚本进行压缩JS和css,此处就不写了。
接下来研究Java中调用yui压缩JS和css。
原文:https://www.cnblogs.com/qlqwjy/p/9395443.html