patchwork/jsqueeze

该包已被废弃,不再维护。没有建议的替代包。

PHP中的高效JavaScript压缩

安装次数: 5,468,778

依赖: 104

建议者: 28

安全: 0

星标: 152

关注者: 23

分支: 34

开放问题: 17

v2.0.5 2016-04-19 09:28 UTC

This package is auto-updated.

Last update: 2020-05-30 09:18:57 UTC


README

Latest Stable Version Total Downloads Build Status

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文件)。