JavaScriptのサイズを減少させるためのモジュール
JavaScript::Packerの例。
#!/usr/bin/env perl use strict; use warnings; use autodie; use JavaScript::Packer; my $js = shift; open my $fh, "<", $js; my $js_code = do { local $/; <$fh>; }; close $fh; my $packer = JavaScript::Packer->init; print "'original' size = ", length $js_code, "\n"; for my $option (qw/clean shrink obfuscate best/) { my $output = $packer->minify(\$js_code, { compress => $option }); print "'$option' size = ", length $output, "\n"; }
jquery-1.6.1.jsを取得して適用してみた結果は以下のとおり
% perl js_minify.pl jquery-1.6.1.js 'original' size = 234995 'clean' size = 132743 'shrink' size = 109771 'obfuscate' size = 72373 'best' size = 72373
わりと処理時間がかかってるかなって印象だけど、あらかじめ圧縮したものを
置くことが普通だと思うのであんまり支障はなさそうですが、リアルタイムで
サイズ軽減ということがあれば、サイズが大きいとちょっともっさり感がある
かもしれないですね。