table of contents
| JavaScript::Packer(3pm) | User Contributed Perl Documentation | JavaScript::Packer(3pm) |
NAME¶
JavaScript::Packer - Perl version of Dean Edwards' Packer.js
VERSION¶
Version 2.12
DESCRIPTION¶
A JavaScript Compressor
This module is an adaptation of Dean Edwards' Packer.js.
Additional information: http://dean.edwards.name/packer/
SYNOPSIS¶
use JavaScript::Packer;
my $packer = JavaScript::Packer->init();
$packer->minify( $javascript, $opts );
To return a scalar without changing the input simply use (e.g. example 2):
my $ret = $packer->minify( $javascript, $opts );
For backward compatibility it is still possible to call 'minify' as a function:
JavaScript::Packer::minify( $javascript, $opts );
The first argument must be a scalarref of javascript-code.
Second argument must be a hashref of options. Possible options are:
- 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. Thisis recommended because especially when compressing short scripts the resultwill exceed the input if compression level is 'obfuscate'.
- copyright
- You can add a copyright notice at the top of the script.
- remove_copyright
- If there is a copyright notice in a comment it will only be removed if thisoption is set to a true value. Otherwise the first comment that contains theword "copyright" will be added at the top of the packed script. A copyrightcomment will be overwritten by a copyright notice defined with the copyrightoption.
- no_compress_comment
- If not set to a true value it is allowed to set a JavaScript comment
thatprevents the input being packed or defines a compression level.
/* JavaScript::Packer _no_compress_ */ /* JavaScript::Packer shrink */
EXAMPLES¶
- Example 1
- Common usage.
#!/usr/bin/perl use strict; use warnings; use JavaScript::Packer; my $packer = JavaScript::Packer->init(); open( UNCOMPRESSED, 'uncompressed.js' ); open( COMPRESSED, '>compressed.js' ); my $js = join( '', <UNCOMPRESSED> ); $packer->minify( \$js, { compress => 'best' } ); print COMPRESSED $js; close(UNCOMPRESSED); close(COMPRESSED); - Example 2
- A scalar is requested by the context. The input will remain unchanged.
#!/usr/bin/perl use strict; use warnings; use JavaScript::Packer; my $packer = JavaScript::Packer->init(); open( UNCOMPRESSED, 'uncompressed.js' ); open( COMPRESSED, '>compressed.js' ); my $uncompressed = join( '', <UNCOMPRESSED> ); my $compressed = $packer->minify( \$uncompressed, { compress => 'best' } ); print COMPRESSED $compressed; close(UNCOMPRESSED); close(COMPRESSED);
AUTHOR¶
Merten Falk, "<nevesenin at cpan.org>". Now maintained by Lee Johnson (LEEJO)
BUGS AND CAVEATS¶
This module will break code that relies on ASI, see <https://github.com/leejo/javascript-packer-perl/issues/5>for more information.
This module uses regular expressions to parse the JavaScript so is proneto bugs and edge cases, especially when the JavaScript standard is updated
Please report any bugs or feature requests through the web interface at<http://github.com/leejo/javascript-packer-perl/issues>.
SUPPORT¶
You can find documentation for this module with the perldoc command.
perldoc JavaScript::Packer
COPYRIGHT & LICENSE¶
Copyright 2008 - 2012 Merten Falk, all rights reserved.
This program is free software; you can redistribute it and/or modify it underthe same terms as Perl itself.
| 2025-05-16 | perl v5.40.1 |