Graham TerMarsch > Apache2-Filter-Minifier-JavaScript-1.05 > Apache2::Filter::Minifier::JavaScript

Download:
Apache2-Filter-Minifier-JavaScript-1.05.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 1.05   Source  

NAME ^

Apache2::Filter::Minifier::JavaScript - JS minifying output filter

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.

syntax highlighting: