Documentation

You are viewing the documentation for the 2.2.0 release in the 2.2.x series of releases. The latest stable release series is 2.4.x.

§Google Closure Compiler を使う

Closure Compiler は、JavaScript のダウンロード・実行を高速化するためのツールです。Closure Compiler は、その名の通りコンパイラです。ただし、ソースコードを機械語へコンパイルするのではなく、JavaScript を良い JavaScript へコンパイルします。JavaScript コードはパース・分析され、不要なコードは削除され、必要に応じて書き換えられて、最終的には minify されます。

app/assets ディレクトリ以下の JavaScript は全て Google Closure Compiler によりパースされて、エラーや依存性のチェックがされます。さらに、ビルド設定で有効にされている場合は minify されます。

§JavaScript のサニティチェック

JavaScript コードは compile コマンドの実行時や、コードの変更時に自動的にコンパイルされます。他のコードのコンパイルエラー同様、JavaScript のコンパイルエラーもブラウザ上で確認できます。

§縮小

.js.min.js に置き換えられた縮小版のファイルも生成されます。今回の例の場合、縮小版は test.min.js となっていることでしょう。通常のファイルの替わりに縮小版を使いたい場合は、HTML ファイルにて script の source 属性を変更する必要があります。

§エントリポイント

デフォルトでは、ファイル名の先頭にアンダースコアが付いていない JavaScript ファイルはすべてコンパイルされます。この振る舞い意は project/Build.scala にて javascriptEntryPoints キーを上書きすることで変更できます。このキーは PathFinder を保持しています。

例えば、 app/assets/javascripts/main ディレクトリの .js ファイルだけをコンパイルするには以下のようにします:

val main = play.Project(appName, appVersion, appDependencies).settings(
   javascriptEntryPoints <<= baseDirectory(base =>
      base / "app" / "assets" / "javascripts" / "main" ** "*.js"
   )
)

デフォルトの定義は以下のとおりです:

javascriptEntryPoints <<= (sourceDirectory in Compile)(base =>
   ((base / "assets" ** "*.js") --- (base / "assets" ** "_*")).get
)

§オプション

ClosureCompiler のコンパイル処理は、プロジェクトの Build.scala ファイル (in the settings part of the PlayProject) で制御することができます。

例:

closureCompilerOptions += "ecmascript5"

次ページ: 依存性の管理に require.js を使う