代码之家  ›  专栏  ›  技术社区  ›  Alan Plum

yuicompressor或类似的PHP?

  •  8
  • Alan Plum  · 技术社区  · 15 年前

    我一直在我的测试服务器上使用yuicompressor.jar来动态地最小化已更改的javascript文件。现在我已经将网站部署到公共服务器,我注意到服务器的策略禁止使用Excel()或它的等价物,所以对我来说没有更多的Java执行。

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

    与yuicompressor类似,该工具应该能够以文件名或javascript作为输入,并且应该写入文件或输出压缩的javascript。

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

    伊迪丝2:自从我问这个问题以来,这五年发生了很大变化。今天,我强烈建议将前端工作流与服务器代码分开。除了最简单的jquery增强功能外,还有很多很好的工具可以用于JS开发,最好有一个完整的工作流,在适当的位置进行自动捆绑、测试和整理,并且只部署小型捆绑包,而不部署原始文件。

    3 回复  |  直到 9 年前
        1
  •  6
  •   karim79    15 年前

    是的,有,它叫 minify .

    唯一需要担心的是在复杂性方面 也没有什么。如果要在一个文件中包含多个js/css,请编辑groupsconfig.php文件 <script> <link> 声明:

    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>
    
        2
  •  3
  •   casperOne    13 年前

    (我知道我在寻找完全相同的东西,不知道如何使用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文件,所以操作人员无论如何都不能在他的服务器配置中使用它。

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

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

        3
  •  0
  •   stpe    15 年前

    尝试 Lissa :

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