devize/closure-compiler

适用于PHP项目的Google Closure Compiler

dev-master 2015-05-21 08:19 UTC

This package is auto-updated.

Last update: 2019-12-19 14:33:14 UTC


README

什么是Closure Compiler?

来自 Google

Closure Compiler是一个使JavaScript下载和运行更快的工具。它是一个真正的JavaScript编译器。它不是将源语言编译成机器码,而是将JavaScript编译成更好的JavaScript。它解析你的JavaScript,分析它,删除死代码,并重写和最小化剩余内容。它还检查语法、变量引用和类型,并警告常见的JavaScript陷阱。

为什么这个库存在?

Google提供的Closure Compiler(CC)作为Web应用程序提供,也可以作为命令行Java jar文件下载。此文件可用于运行自己的编译。然而,要以此方式使用编译器,你必须将所有JavaScript文件名输入到终端窗口中,这很麻烦,而且不易自动化。

此库提供了一个围绕CC的PHP包装器,可以在PHP脚本中使用。使用包装器,您可以连接PHP应用程序的配置到编译器,并自动化您的编译。然后,您的编译构建脚本可以用在Phing脚本等地方。

安装

克隆此存储库并包含类。或者使用Composer

"require-dev": {
    "devize/closure-compiler": "*"
}

该库使用Composer的自动加载器,因此如果您的应用程序也使用它,您无需执行任何其他操作。

用法

假设您已管理自己的自动加载器,设置了您自己的包含或正在使用Composer的自动加载器

use Devize\ClosureCompiler\ClosureCompiler;
$compiler = new ClosureCompiler;
$compiler->setSourceBaseDir('path/to/javascript-files/');
$compiler->setTargetBaseDir('path/to/javascript-files/');
$compiler->setSourceFiles(array('one.js', 'two.js', 'three.js'));
$compiler->addSourceFile('four');
$result = $compiler->compile();
if ($result !== 0) {
	echo $compiler->getOutput();
}

编译器使用的compile()方法通过系统调用执行jar文件。默认情况下,生成的文件名为compiled.js。您可以在编译之前调用此方法来更改此名称

$compiler->setTargetFile('somethingElse.js');

如果您犯了一个错误,将抛出类Devize\ClosureCompiler\CompilerException的异常。

许可证

此库打包了来自Google的Closure Compiler。文件夹compiler-latest是解压缩Google提供的Zip文件的结果。其许可证已包含在内。

PHP包装器文件采用MIT许可证。

反馈

欢迎任何反馈;使用Github系统或发送推文到@breuls。