繁体   English   中英

YUIC压缩器或类似的PHP?

[英]YUICompressor or similar in PHP?

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

用PHP实现了一个不错的即时JS压缩器吗? 我能找到的唯一类似的东西是Minify,但它更像是一个带有缓存和一切的全面压缩解决方案。 我想保持文件分离,并使最小化的文件遵循我自己的命名约定,因此Minify对于此目的来说有点过于复杂。

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

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

编辑2:自从我提出这个问题以来的五年里,情况发生了很大变化。 今天我强烈建议将前端工作流程与服务器代码分开。 有很多很好的JS开发工具,除了最简单的jQuery增强功能之外,最好有一个完整的工作流程,自动捆绑,测试和linting,只需部署缩小的bundle而不是原始文件。

是的,它被称为缩小

在复杂性方面唯一需要担心的是建立一个小组 ,而且实际上并没有什么。 如果您想在一个<script><link>语句中使用多个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>

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

Minify是一个拥有大量功能的庞大图书馆。 然而,缩小部分是一个非常小的类: http//code.google.com/p/minify/source/browse/trunk/min/lib/Minify/YUICompressor.php

非常容易使用:

//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无论如何都不能使用它的服务器配置

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

http://code.google.com/p/minify/source/browse/trunk/min/lib/JSMinPlus.php?r=443&spec=svn468

试试Lissa

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM