播放资产管道的Web依赖关系

时间:2013-03-01 21:29:16

标签: playframework-2.0 asset-pipeline webjars

我来自Rails世界,正在玩游戏(2.1)。我喜欢它带有一种资产管道,但我缺少的一件事是在那里包含Web依赖。在Rails中,我可以添加jquery-rails依赖项并将其包含在我的application.js文件中以使其可用。

我偶然发现http://webjars.org看起来很不错,但据我所知,我只能将这些文件直接包含在html文件中。

有没有办法实现这种行为,还是计划在不久的将来实施?

1 个答案:

答案 0 :(得分:3)

它的支持方式与Rails相同(显然),所以我提出的最好的是:

  1. 包含您的WebJars依赖项
  2. 将WebJars路由定义为documented here
  3. 将您的JavaScript文件放入/app/assets/javascripts
  4. 使用RequireJS(作为documented here)和WebJars RequireJS加载程序包含WebJars依赖项
  5. 因此,例如,假设你想使用AngularJS。

    Build.scala:

    val appDependencies = Seq(
      "org.webjars" % "webjars-play" % "2.1.0-2",
      "org.webjars" % "angularjs" % "1.0.7"
    )
    

    CONF /路由

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

    应用程序/资产/ Javascript角/ main.js

    require(["webjars!angular.js"], function() {
      console.log(angular.isString(3));
    }
    

    应用程序/视图/ example.scala.html

    ...
    @helper.requireJs(core = routes.Assets.at("javascripts/require.js").url, module = routes.Assets.at("javascripts/main").url)
    ...
    

    现在JavaScript控制台打印“false”。