JavaScriptの圧縮ツールを試してみた。
ContainerJSのリリース物に、空白やコメントを除いた圧縮版も含めようと思って、JavaScriptの圧縮ツールを3つほど試してみました。
ツール名 | 評価 | 圧縮率 | コメント | 圧縮結果のサンプル(圧縮前のソースはこちら) | |||||
---|---|---|---|---|---|---|---|---|---|
JavaScriptZIP 1.0.2 | ○ | 45.2% | 不要な空白、コメントの除去。改行は一部残される。変数名の変更による圧縮はされないっぽい | container.js | |||||
YUI Compressor 2.2.5 | ◎ | 38.2% | 空白、コメントの除に加え、引数名の変更による圧縮もされる。 | container.js | |||||
JSC 1.1 | × | - | 「Exception in JSC at CompressJavaScript : インデックスが配列の境界外です。」となって実行失敗。 | - |
JavaScriptZIP,YUI Compressorとも圧縮後のモジュールを使った動作を単体テストで確認済み。ということでどちらも問題なく使えそうですが、圧縮率を考慮して「YUI Compressor」を採用することにします。
参考:実行したコマンド
参考までに各ツールの実行時に指定したオプションを書いておきます。なお、Windows環境で試しています。
JavaScriptZIP
java -jar javascriptzip_1.0.2.jar ..\..\..\container.js ..\..\..\container-jszip.js
YUI Compressor
$ java -jar yuicompressor-2.2.5\build\yuicompressor-2.2.5.jar --type js --charset UTF-8 -o container-yui.js container.js
JSC
$ JSC.exe ..\container.js