Dean Edwards 的php版的 JavaScript Packer 是一个非常好用的JavaScript压缩工具。支持几个级别的压缩。不过我用来压缩一些程序后发现跑不起来,未压缩前语法的没问题的,而且换行结束的地方都有分好。压缩后反而语法有错。于是找了一下原因终于发现,原来是一正则出了问题。打开
class.JavaScriptPacker.php
查找
PHP代码
- $parser->add('/;+\\s*([};])/', '$2');
PHP代码
- //$parser->add('/;+\\s*([};])/', '$2');
为什么这个会出错呢?举个例子说明一下
JavaScript代码
- function aa(){
- for(var i=0; i<4; bb(i++));
- }
JavaScript代码
- function aa(){for(var i=0; i<4; bb(i++))}
没有逗号自然就语法出错了。