.cssとか.jsの.gzファイルを作るときに、せっかくだから.jsファイルを小さくしようと思って、調べてみたらCPANのJavaScript::Minifierというのがあったので、これを使わせてもらった。シェルスクリプトの書き方もあまり知らんので調べながら...。
for name in ../js/*.js do echo $name cat $name \ | perl -e 'use JavaScript::Minifier minify;minify(input=>*STDIN, outfile=>*STDOUT);' \ | gzip -c > $name.gz done
perlの-Mオプションでモジュールを指定するとかっこいいのかもしれないけど、エクスポートの仕方がわからんかったので、use って書いた。自分で書いていた.jsファイルは問題なく処理されたけど、jQueryのtablesorterプラグインでエラーがー。
../js/jquery.tablesorter.js unterminated double quoted string literal, stopped at /opt/local/lib/perl5/site_perl/5.8.9/JavaScript/Minifier.pm line 151. ../js/jquery.tablesorter.min.js unterminated double quoted string literal, stopped at /opt/local/lib/perl5/site_perl/5.8.9/JavaScript/Minifier.pm line 151.
出力されたファイル自体は問題なさげだった。(できるところまでやって、あとは元のファイルのままのようだった)
もともとminifyされた min.js があるので、さらにminifyする必要はないんだけど、除外するのもめんどくさい...。
除外する方法はこんな感じに書いた。
for name in ../js/*.js do case $name in *jquery* ) echo "除外だな" ;; * ) echo "ここでやる" ;; esac done
実際やってみると minify するのとしないのとでは .gz の状態でも 3KB から 2KB になったり(元ファイル8KBくらいで)で、わりと差がでますな...。