.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "JavaScript::Packer 3pm" .TH JavaScript::Packer 3pm "2014-10-09" "perl v5.20.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" JavaScript::Packer \- Perl version of Dean Edwards' Packer.js .SH "VERSION" .IX Header "VERSION" Version 1.006003 .SH "DESCRIPTION" .IX Header "DESCRIPTION" A JavaScript Compressor .PP This module is an adaptation of Dean Edwards' Packer.js. .PP Additional information: http://dean.edwards.name/packer/ .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use JavaScript::Packer; \& \& my $packer = JavaScript::Packer\->init(); \& \& $packer\->minify( $javascript, $opts ); .Ve .PP To return a scalar without changing the input simply use (e.g. example 2): .PP .Vb 1 \& my $ret = $packer\->minify( $javascript, $opts ); .Ve .PP For backward compatibility it is still possible to call 'minify' as a function: .PP .Vb 1 \& JavaScript::Packer::minify( $javascript, $opts ); .Ve .PP The first argument must be a scalarref of javascript-code. .PP Second argument must be a hashref of options. Possible options are: .IP "compress" 4 .IX Item "compress" Defines compression level. Possible values are 'clean', 'shrink', 'obfuscate' and 'best'. Default value is 'clean'. \&'best' uses 'shrink' or 'obfuscate' depending on which result is shorter. This is recommended because especially when compressing short scripts the result will exceed the input if compression level is 'obfuscate'. .IP "copyright" 4 .IX Item "copyright" You can add a copyright notice at the top of the script. .IP "remove_copyright" 4 .IX Item "remove_copyright" If there is a copyright notice in a comment it will only be removed if this option is set to a true value. Otherwise the first comment that contains the word \*(L"copyright\*(R" will be added at the top of the packed script. A copyright comment will be overwritten by a copyright notice defined with the copyright option. .IP "no_compress_comment" 4 .IX Item "no_compress_comment" If not set to a true value it is allowed to set a JavaScript comment that prevents the input being packed or defines a compression level. .Sp .Vb 2 \& /* JavaScript::Packer _no_compress_ */ \& /* JavaScript::Packer shrink */ .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" .IP "Example 1" 4 .IX Item "Example 1" Common usage. .Sp .Vb 1 \& #!/usr/bin/perl \& \& use strict; \& use warnings; \& \& use JavaScript::Packer; \& \& my $packer = JavaScript::Packer\->init(); \& \& open( UNCOMPRESSED, \*(Aquncompressed.js\*(Aq ); \& open( COMPRESSED, \*(Aq>compressed.js\*(Aq ); \& \& my $js = join( \*(Aq\*(Aq, ); \& \& $packer\->minify( \e$js, { compress => \*(Aqbest\*(Aq } ); \& \& print COMPRESSED $js; \& close(UNCOMPRESSED); \& close(COMPRESSED); .Ve .IP "Example 2" 4 .IX Item "Example 2" A scalar is requested by the context. The input will remain unchanged. .Sp .Vb 1 \& #!/usr/bin/perl \& \& use strict; \& use warnings; \& \& use JavaScript::Packer; \& \& my $packer = JavaScript::Packer\->init(); \& \& open( UNCOMPRESSED, \*(Aquncompressed.js\*(Aq ); \& open( COMPRESSED, \*(Aq>compressed.js\*(Aq ); \& \& my $uncompressed = join( \*(Aq\*(Aq, ); \& \& my $compressed = $packer\->minify( \e$uncompressed, { compress => \*(Aqbest\*(Aq } ); \& \& print COMPRESSED $compressed; \& close(UNCOMPRESSED); \& close(COMPRESSED); .Ve .SH "AUTHOR" .IX Header "AUTHOR" Merten Falk, \f(CW\*(C`\*(C'\fR .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests through the web interface at . .SH "SUPPORT" .IX Header "SUPPORT" You can find documentation for this module with the perldoc command. .PP perldoc JavaScript::Packer .SH "COPYRIGHT & LICENSE" .IX Header "COPYRIGHT & LICENSE" Copyright 2008 \- 2012 Merten Falk, all rights reserved. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.