Closure Compilerを使う!

高度なトピック

最終更新:

aias-closurecompiler

- view
管理者のみ編集可

トップページ >

高度なトピック

このページに続くコンテンツでは、Closure Compilerをより高度に利用するための様々な機能について解説します。

extern宣言

externとは、サードパーティのライブラリなどの外部コードが定義するシンボルの名前を宣言し、 ADVANCED_OPTIMIZATIONS レベルでコンパイルされるコード内でそれらをClosure Compilerのリネーム処理から保護する機能です。externが必要な状況がよく分からない場合は、まずこちらを参照してください。

externはClosure Compiler Application及びClosure Compiler Service APIで利用できます。Closure Compiler Service UIはexternのためのインターフェースを提供していません。

アノテーションによる型定義

Closure CompilerはJavaScript変数のデータ型やその他の情報を利用して、高度な最適化と警告機能を提供します。しかしJavaScriptには型を宣言する構文がありません。このため、あなたはコメントを使用してコード内にそれらを定義する必要があります。

Closure Compilerの型定義言語はドキュメント生成ツールであるJsDoc Toolkitで使用されているアノテーション(注釈)コメントから派生したものです。このページではClosure Compilerが解釈可能なアノテーションコメントと型表現のセットについて説明します。

--manage_closure_dependenciesによる依存関係の自動解決

ブラウザはJavaScriptを記述された順に処理します。アプリケーションが複数のJavaScriptファイルから構成されている場合、開発者はそれらが適切な順序で実行されるようにファイルの並び順を管理する必要があります。

Closure Libraryはファイル間の並び順(依存関係)の管理を助けるいくつかのpythonスクリプトを提供しています。Closure Libraryの世界では、各JavaScriptファイル内でシンボルが最初に定義されるところで goog.provide が呼び出され、シンボルが使用されるファイルの先頭で goog.require が呼び出されます。つまり goog.provide によるシンボルの宣言は、そのシンボルを指す全ての goog.require よりも先行して実行されなければならないのです。Closure Libraryのスクリプトはこの原則を利用してファイルの順序を自動的に決定します。

そしてClosure Compiler Applicationもその原則に基づいたファイルの依存関係の自動解決をサポートしています。この機能はは --manage_closure_dependencies オプションによって有効化されます。