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.

§CoffeeScript を使う

CoffeeScript は、小さくかつエレガントな言語で、JavaScript へコンパイルされます。CoffeeScript を利用すると、JavaScript コードをより良い構文で書くことができます。

Play では、CoffeeScript など、別の言語へコンパイルされるようなアセットは全て app/assets へ入れることになっています。ここへ入れられたファイルはビルドの中で自動的にコンパイルされます。CoffeeScript の場合は、このとき普通の JavaScript へコンパイルされます。生成された JavaScript ファイルは public/ ディレクトリに配置されたかのように扱われるため、一旦コンパイルされてしまえば通常の JavaScript ファイルと違いはありません。

補足:生成された JavaScript ファイルなどの Play が管理しているリソース自体は public/ ディレクトリへ直接コピーされるのではなく、 target/scala-2.x.x/resources_managed という別のディレクトリに保持されます。

例えば、 app/assets/javascripts/main.coffeepublic/javascripts/main.js において通常の JavaScript リソースとして利用できるようになります。

CoffeeScript ソースファイルは compile コマンドの実行時や、開発モードでアプリケーションを起動中にブラウザでページが再読み込みされた際に自動的にコンパイルされます。後者のタイミングでコンパイルされた場合、コンパイルエラーはブラウザ上に表示されます。

§ディレクトリ構造

CoffeeScript を使うプロジェクトの基本的なデイレクトリ構造は次のようになります。

app
 └ assets
    └ javascripts
       └ main.coffee   

二つの JavaScript ファイル: public/javascripts/main.jspublic/javascripts/main.min.js がコンパイルされます。ひとつ目のファイルは開発時に便利な読めるコードで、二つ目は本番環境で利用できる圧縮ファイルです。いずれもテンプレートにて使用することができます:

<script src="@routes.Assets.at("javascripts/main.js")">
<script src="@routes.Assets.at("javascripts/main.min.js")">

§オプション

CoffeeScript のコンパイルは (PlayProject の設定部分である) Build.scala ファイルで制御することができます。現在サポートされている唯一のオプションは bare モードです。

coffeescriptOptions := Seq("bare")

ネイティブの CoffeeScript コンパイルを使う実験的なオプションがあることを覚えておいてください。この方法の利点は速さであり、欠点は外部への依存です。この方法を試したい場合は、設定に以下を追加してください:

coffeescriptOptions := Seq("native", "/usr/local/bin/coffee -p")

グローバルスコープの汚染を防ぐため、 JavaScript コードはデフォルトでトップレベルの安全な関数ラッパ内に生成されます。 bare オプションはこの関数ラッパを取り除きます。

次: LESS CSS を使う