NAME

    Apache2::Filter::Minifier::JavaScript - JavaScript minifying output
    filter for mod_perl

SYNOPSIS

      <LocationMatch "\.js$">
          PerlOutputFilterHandler   Apache2::Filter::Minifier::JavaScript
    
          # if you need to supplement MIME-Type list
          PerlSetVar                JsMimeType  text/json
    
          # if you want to explicitly specify the minifier to use
          #PerlSetVar               JsMinifier  JavaScript::Minifier::XS
          #PerlSetVar               JsMinifier  JavaScript::Minifier
          #PerlSetVar               JsMinifier  MY::Minifier::function
      </LocationMatch>

DESCRIPTION

    Apache2::Filter::Minifier::JavaScript is a Mod_perl2 output filter
    which minifies JavaScript using JavaScript::Minifier or
    JavaScript::Minifier::XS.

    Only JavaScript documents are minified, all others are passed through
    unaltered. Apache2::Filter::Minifier::JavaScript comes with a list of
    several known acceptable MIME-Types for JavaScript documents, but you
    can supplement that list yourself by setting the JsMimeType PerlVar
    appropriately (use PerlSetVar for a single new MIME-Type, or PerlAddVar
    when you want to add multiple MIME-Types).

    Given a choice, using JavaScript::Minifier::XS is preferred over
    JavaScript::Minifier, but we'll use whichever one you've got available.
    If you want to explicitly specify which minifier you want to use, set
    the JsMinifier PerlVar to the name of the package/function that
    implements the minifier. Minification functions are expected to accept
    a single parameter (the JavaScript to be minified) and to return the
    minified JavaScript on completion. If you specify a package name, we
    look for a minify() function in that package.

 Caching

    Minification does require additional CPU resources, and it is
    recommended that you use some sort of cache in order to keep this to a
    minimum.

    Being that you're already running Apache2, though, here's some examples
    of a mod_cache setup:

    Disk Cache

      # Cache root directory
      CacheRoot /path/to/your/disk/cache
      # Enable cache for "/js/" location
      CacheEnable disk /js/

    Memory Cache

      # Cache size: 4 MBytes
      MCacheSize 4096
      # Min object size: 128 Bytes
      MCacheMinObjectSize 128
      # Max object size: 512 KBytes
      MCacheMaxObjectSize 524288
      # Enable cache for "/js/" location
      CacheEnable mem /js/

METHODS

    handler($filter)

      JavaScript minification output filter.

AUTHOR

    Graham TerMarsch (cpan@howlingfrog.com)

    Many thanks to Geoffrey Young for writing Apache::Clean, from which
    several things were lifted. :)

COPYRIGHT

    Copyright (C) 2007, Graham TerMarsch. All Rights Reserved.

    This is free software; you can redistribute it and/or modify it under
    the same license as Perl itself.

SEE ALSO

    JavaScript::Minifier

    JavaScript::Minifier::XS

    Apache2::Filter::Minifier::CSS

    Apache::Clean

