patchwork / jsqueeze
该包已被废弃,不再维护。没有建议的替代包。
PHP中的高效JavaScript压缩
v2.0.5
2016-04-19 09:28 UTC
Requires
- php: >=5.3.0
README
JSqueeze可以缩小/压缩/最小化/混淆JavaScript代码。
它是一个自2003年以来在主要JavaScript框架(例如jQuery)上开发和测试的单个PHP类。
JSqueeze可以在任何没有解析错误的JavaScript代码上运行,即使分号缺失。
在压缩率方面,它与YUI Compressor和UglifyJS相当。
安装
通过composer
{ "require": { "patchwork/jsqueeze": "~2.0" } }
用法
use Patchwork\JSqueeze; $jz = new JSqueeze(); $minifiedJs = $jz->squeeze( $fatJs, true, // $singleLine true, // $keepImportantComments false // $specialVarRx );
功能
- 删除注释和空白。
- 重命名每个局部变量,通常是单个字符。
- 保留Microsoft的条件注释。
- 为了最大化后续的HTTP压缩(deflate,gzip),新变量名是在考虑闭包、变量频率和字符频率的情况下选择的。
- 也可以重命名全局变量、方法和属性,但前提是它们被某些命名约定特殊标记。使用JSqueeze::SPECIAL_VAR_PACKER来重命名以一个或多个
$
或单个_
开头的变量。 - 也可以重命名字符串中找到的局部/全局变量,但前提是它们被特殊标记。
- 如果你使用
with/eval
,那么要小心。
附加功能
- 将
false/true
替换为!1/!0
- 将
new Array/Object
替换为[]/{}
- 合并连续的
var
声明,用逗号分隔 - 合并连续连接的字符串
- 可以将可选的分号替换为换行符,从而便于输出调试。
- 保留以
/*!...
标记的重要注释 - 将三个分号
;;;
视为单行注释。 - 修复跨浏览器的特殊catch作用域问题
- 在IE<=8中对具有名称的函数表达式的错误处理进行绕过
待办事项?
- foo['bar'] => foo.bar
- {'foo':'bar'} => {foo:'bar'}
- 删除死代码(从未使用的函数)
- 混淆原始数据:var WINDOW=window,等等。
许可
这个库是自由软件;您可以在以下条款下重新分发或修改它:(您可选择):Apache License v2.0(见提供的LICENCE.ASL20文件),或GNU通用公共许可证v2.0(见提供的LICENCE.GPLv2文件)。