YUI Compressor
YUI Compressorとは、Julien Lecomte (Yahoo! Inc.)によって開発された JavaScriptとCSSファイルを Minify(縮小)するツールです。
変数名を短くしたり、動作に影響しないコメントや空白を除去して、ソースファイルのサイズを小さくすることができます。
インストール
YUI Compressor のダウンロード
YUI Compressor から最新のバージョンをダウンロードします。
*YUI Compressorの実行には、Java 1.4 以上が必要です。インストールされていない場合は、SunのWebサイト からダウンロードし、インストールしてください。
配置
ダウンロードしたアーカイブを、適当な場所に展開/配置すれば完了です。
アーカイブの build ディレクトリにある、yuicompressor-x.x.x.jar ファイルが、本体のJava アプリケーションです。
簡単な使い方
次のようにして、YUI Compressor を実行します。
例)test.js というファイルを縮小する場合
$java -jar yuicompressor.jar -o test-min.js test.js
test.js と同じディレクトリに test-min.js というMinify(縮小)されたファイルが出力されます。
詳細 (Ver 2.4.2)
書式
java -jar yuicompressor.jar [options] [input file]
標準オプション
-h, --help
--type <js|css>
--charset <charset>
--line-break <column>
-v, --verbose
-o <output file>
JavaScript専用オプション
--nomunge
--preserve-semi
--disable-optimizations
inputfile(入力ファイル)を指定しない場合、標準入力からソースを読み込みます。その場合、--type オプションは必須です。
オプション
標準オプション
オプション 解説
-h, --help
コマンドとオプションの概要を表示します。
--type <js|css>
JavaScript か CSS のどちらのファイルとして縮小するかを指定します。
js
もしくは css
のどちらかを指定します。
(このオプションを指定しない場合は、入力ファイルの拡張子(.js もしくは .css)で判断します。拡張子が .js もしくは .css ではない場合などに使用します。)
また、入力が標準出力の場合(入力ファイルを指定せずに実行した場合)、このオプションは必須です。
例)ファイル test.abc を、JavaScript として縮小する
>java -jar yuicompressor.jar --type js test.abc
--charset <charset>
文字コードを指定します。
(このオプションを指定しない場合は、プラットフォームのデフォルト文字コードを使用して縮小します。)
例)ファイル test.css を、UTF-8 として縮小する
>java -jar yuicompressor.jar --charset UTF-8 test.css
--line-break <column>
改行を挿入して、出力ファイルの可読性を高めます。
指定した文字数を超え、改行可能な場所に改行を挿入します。
例)100文字以上で改行可能な場所に改行を挿入する
>java -jar yuicompressor.jar --line-break 100 test.js
-v, --verbose
詳細メッセージと警告を表示します。
例)詳細メッセージオプションを付けて実行する
>java -jar yuicompressor.jar -v test.js
結果例)with 文の使用
[WARNING] Using 'with' is not recommended. Moreover, using 'with' reduces the level of compression!
=0;}var n=5; ---> with <--- (document){aaa="bbb";}
結果例)使用されない変数
[WARNING] The symbol i is declared but is apparently never used.
This code can probably be written in a more compact way.
function aaa(){var ---> i <--- =0;}var n=5;with
-o <output file>
出力ファイル名を指定します。
(このオプションを指定しない場合は、標準出力に出力されます。)
例)ファイル test.css を縮小し、small.css というファイル名で出力する
>java -jar yuicompressor.jar -o small.css test.css
JavaScript専用オプション
オプション 解説
--nomunge
縮小化のみ行います。ローカル変数を難読化しません。
(このオプションを指定しない場合は、ローカル変数を "A" , "B" のように変更し、難読化・縮小します。)
--preserve-semi
不要なセミコロンを削除しないようにします。
(このオプションを指定しない場合は、"}" の前にあるセミコロンなど、動作に影響しないセミコロンを削除します。)
--disable-optimizations
標準で実装されている最適化を無効にします。
標準の最適化としては以下のようなものがあります。
プロパティアクセスの最適化
obj["foo"]
のような記述をobj.foo
にします。(可能なときのみ) これにより3バイト縮小されます。
プロパティ定義の最適化
{'foo':bar}
のような記述を{foo:bar}
にします。(可能なときのみ) これにより2バイト縮小されます。
文字列リテラルのマージ
"foo"+"bar"
のような記述を"foobar"
にします。(可能なときのみ) これにより3バイト縮小されます。
コメント
/*! で始まるC言語スタイルのコメントは、除去されません。
ソース例
/*!
* stacktrace.jp
* Copyright 2007-2010 by Masakazu Ikead. All rights Reserved.
*/
出力例
/*
* stacktrace.jp
* Copyright 2007-2010 by Masakazu Ikead. All rights Reserved.
*/