devize / closure-compiler
适用于PHP项目的Google Closure Compiler
Requires (Dev)
- mikey179/vfsstream: *
- phpunit/phpunit: 3.7.*
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。