Play2でWebJarsを使ってみる

WebJarsJavaベースのWebアプリケーションでJavaScriptライブラリを使えるようにするための仕組みです。JavaであればMavenScalaであればsbt(activator含む)といったビルドツールを使用してJavaScriptライブラリの依存関係を解決することができます。

Play2ではwebjars-playを使ってWebJarsを使用することができます。ここでは試しにjQueryを使ってみます。

まずはbuild.sbtに以下のようにWebJarsとjQueryの依存関係を追加します。

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  ws,
  "org.webjars" %% "webjars-play" % "2.3.0-2",
  "org.webjars" % "jquery" % "2.1.1"
)

conf/routesに以下のルーティングを追加します。

GET        /webjars/*file        controllers.WebJarAssets.at(file)

HTMLテンプレートでは以下のようにしてJavaScriptライブラリのパスを取得できます。

<script type='text/javascript' src='@routes.WebJarAssets.at(WebJarAssets.locate("jquery.min.js"))'>

実際のところWebJarsにはマイナーなライブラリや、メジャーなものでも最新のバージョンがなかったりと使いにくいケースもあったりしますが、別途ツールを使わなくても依存関係の解決ができたり、自動でCDNを利用できるなど便利な部分もあります。ちょっとしたアプリケーションに使うには便利なのではないでしょうか。