GoogleのAPIで、Javaスクリプトを圧縮してくれるサービス「Closure Compiler」を使ってみました。
公式のドキュメントはこちらのページになります。
htmlのみでJavaスクリプトの圧縮ページを作成するサンプルもあります。
これを参考に、簡単なツールを作成してみました。
圧縮するには、指定のURLにパラメータをPOSTすることで行うことができます。
1 |
http://closure-compiler.appspot.com/compile |
リクエストパラメータの種類は4つ
js_code または code_url
js_code | Javaスクリプトのコードをそのまま送信 |
code_url | JavaスクリプトのURLを指定 |
compilation_level
WHITESPACE_ONLY | 余分な空白や改行、コメントを削除します。 |
SIMPLE_OPTIMIZATIONS | ローカルの変数などを短くします。 |
ADVANCED_OPTIMIZATIONS | 全体を解析し最高レベルの圧縮をします。 |
output_info
compiled_code | 圧縮したJavaスクリプトを返却します。 |
warnings | 警告情報を返却します。 |
errors | エラー情報を返却します。 |
statistics | 圧縮ステータスを返却します。 |
output_format
text | テキスト形式で返却します。 |
json | json形式で返却します。 |
xml | xml形式で返却します。 |
htmlベースのサンプルを修正
htmlベースのサンプルを元に、圧縮されたコード以外に警告やエラーなども返却するように修正。
返却の形式もjson形式に変更してみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<html> <body> <form action="http://closure-compiler.appspot.com/compile" method="POST"> <p>Type JavaScript code to optimize here:</p> <textarea name="js_code" cols="50" rows="5"> function hello(name) { // Greets the user alert('Hello, ' + name); } hello('New user'); </textarea> <input type="hidden" name="compilation_level" value="SIMPLE_OPTIMIZATIONS"> <input type="hidden" name="output_format" value="json"> <input type="hidden" name="output_info" value="compiled_code"> <input type="hidden" name="output_info" value="warnings"> <input type="hidden" name="output_info" value="errors"> <input type="hidden" name="output_info" value="statistics"> <br><br> <input type="submit" value="Optimize"> </form> </body> </html> |
実際の処理内容を確認したければ・・・
GitHubにプロジェクトが公開されています。
今のところライセンスは「Apache 2.0 License.」で公開されていますので、POSTして取得するのが良いかと思います。