Javascript YUICompressor或PHP中的类似软件?

Javascript YUICompressor或PHP中的类似软件?,javascript,php,yui-compressor,Javascript,Php,Yui Compressor,我一直在测试服务器上使用yuicompressor.jar,以便动态地最小化更改的JavaScript文件。现在我已经将该网站部署到了公共服务器上,我注意到服务器的策略禁止使用exec()或其等价物,因此我不再执行java 是否有一个像样的动态JS压缩器在PHP中实现?我能找到的唯一类似于此的东西是Minify,但它更像是一个包含缓存和所有内容的全面压缩解决方案。我希望将文件分开,并使最小化的文件遵循我自己的命名约定,因此,出于这个目的,Minify有点太复杂了 该工具,如yuicompress

我一直在测试服务器上使用yuicompressor.jar,以便动态地最小化更改的JavaScript文件。现在我已经将该网站部署到了公共服务器上,我注意到服务器的策略禁止使用exec()或其等价物,因此我不再执行java

是否有一个像样的动态JS压缩器在PHP中实现?我能找到的唯一类似于此的东西是Minify,但它更像是一个包含缓存和所有内容的全面压缩解决方案。我希望将文件分开,并使最小化的文件遵循我自己的命名约定,因此,出于这个目的,Minify有点太复杂了

该工具,如yuicompressor,应该能够将文件名或JavaScript作为输入,并且应该写入文件或输出压缩的JavaScript

编辑:为了澄清这一点,我正在寻找一些不必作为独立变量使用的东西(即,可以从函数调用它,而不是嗅探我的GET变量)。如果我只是想要一台压缩机,Minify显然是个不错的选择

EDIT2:自从我问这个问题以来,五年里发生了很多变化。今天,我强烈建议将前端工作流与服务器代码分离。有很多很好的JS开发工具,除了最琐碎的jQuery增强功能外,最好有一个完整的工作流,自动绑定、测试和linting,只部署缩小的绑定,而不是原始文件。

是的,它被称为

在复杂性方面,唯一需要担心的是建立一个组,而这实际上是毫无意义的。如果希望在一个
语句中包含多个JS/CSS,请编辑groupsConfig.php文件:

return array(
     'js-common' => array('//js/jquery/jquery-1.3.2.min.js', '//js/common.js', '//js/visuals.js',
'//js/jquery/facebox.js'),
     'css-common' => array('//css/main.css', '//css/layout.css','//css/facebox.css')
);
要包含上述“js common”组,请执行以下操作:

<script type="text/javascript" src="/min/g=js-common"></script>

试试:

Lissa是一个通用的CSS和JavaScript加载实用程序。Lissa是YUI PHP加载程序的扩展,旨在解决当前加载程序的一个限制;组合加载。YUI PHP Loader附带了一个组合加载器,它能够通过将所有YUI JavaScript和/或CSS需求作为每个资源类型的单个请求输出,从而减少HTTP请求并提高性能。这意味着,即使您需要8个YUI组件(最终归结为13个文件),您仍然只需要发出2个HTTP请求;一个用于CSS,另一个用于JavaScript。那太好了,但是定制的非YUI资源呢。YUI PHP Loader将加载它们,但它将它们作为单独的包含加载,因此它们错过了combo服务的好处,页面的HTTP请求数量也增加了。Lissa通过使用YUI PHP加载程序来处理加载和排序YUI和/或自定义资源依赖项以及与Minify一起工作的对,从而克服了这一限制

(我知道我在寻找完全相同的东西,不知道如何使用php直接处理jar文件——这就是我在这里结束的原因,所以我将分享我的发现)

Minify是一个功能强大的图书馆。然而,缩小部分是一个非常小的类:

&非常容易使用:

//set the path to the jar file
Minify_YUIcompressor::$jarFile=_ROOT.'libs/java/yuicompressor.jar';
//set the path to a writable temp folder
Minify_YUIcompressor::$tempDir=_ROOT.'temp/';

//minify
$yourcssminified=Minify_YUIcompressor::minifyCss($yourcssstringnotminified,$youroptions)
对于js,同样的过程,如果你需要更多的功能,只需从库中选择并阅读源代码,看看如何从你的应用程序直接调用

我没有很好地阅读这个问题,因为minify是基于使用jar文件的,op无论如何不能将它与他的服务器配置一起使用

缩小还包括yui以外的其他缩小方法,例如:


正如我所说。我找不到从应用程序中运行minify的方法。见鬼,它甚至希望设置某些GET参数,而不是将文件名作为参数。它可能很好,但不是我想要的。Minify并不复杂。您可以简单地通过使用类似于复杂的“API”来缩小特定文件。事实上,它实际上并没有。它是一个独立的工具,可以读取超全局输入。如果您能给我指出一个允许我在应用程序中使用Minify的包装器,它将是一个有效的选项。@Alan-Minify基于一组类,所有这些类都可以在应用程序中使用。例如,这句话:我不是在挖rep,因为我一天都忙得不可开交。只是想帮忙:)@Alan-JS压缩位基于JSMin-。“配置器”不是必需的,它只是一个方便的工具或“入门工具包”。唯一需要做的工作就是声明一个组数组,我在回答中已经给出了这个数组。看看吧,这是我的建议。你的第一个链接对我不起作用。我曾经