playframework requirejs webjars sbt-web sbt-rjs

playframework - Optimizando JS desde WebJars usando sbt-rjs en una aplicación Play 2.3.x



requirejs sbt-web (1)

¿Es posible tener una aplicación Play 2.3 concat / optimizar JS (usando sbt-rjs) que está incluida en mi aplicación a través de WebJars?
Para dar un ejemplo concreto: estoy tratando de crear un módulo core.js que contenga todas mis bibliotecas de terceros concatenados y minimizados en un solo archivo que luego se puede especificar como una dependencia para otros módulos AMD.
Sería genial incluir estas bibliotecas a través de WebJars en lugar de descargar la fuente "manualmente".

Aquí hay un fragmento de mi archivo build.sbt donde estoy especificando mis dependencias webjar:

// Webjars libraryDependencies ++= Seq( "org.webjars" % "requirejs" % "2.1.15", "org.webjars" % "underscorejs" % "1.7.0", "org.webjars" % "jquery" % "1.11.1", "org.webjars" % "bootstrap" % "3.3.1" exclude("org.webjars", "jquery"), "org.webjars" % "angularjs" % "1.3.4-1" exclude("org.webjars", "jquery") )

Aquí está mi configuración de construcción requireJS

requirejs.config({ baseUrl: ''/assets/javascripts'', shim: { ''jsRoutes'': { deps: [], exports: ''jsRoutes'' }, ''angular'': { deps: [''jquery''], exports: ''angular'' }, ''underscore'': { exports: ''_'' }, ''angularRoute'': [''angular''], ''angularCookies'': [''angular''], ''bootstrap'': [''jquery''] }, paths: { ''requirejs'': ''../lib/requirejs/require'', ''jquery'': ''../lib/jquery/jquery'', ''underscore'': ''../lib/underscorejs/underscore'', ''angular'': ''../lib/angularjs/angular'', ''angularRoute'': ''../lib/angularjs/angular-route'', ''angularCookies'': ''../lib/angularjs/angular-cookies'', ''bootstrap'': ''../lib/bootstrap/js/bootstrap'', ''jsRoutes'': ''/jsroutes'', ''core'': ''./core'' }, modules: [ { name: ''core'' } ] });

Y finalmente, aquí está mi módulo core.js :

define([''angular'', ''angularRoute'', ''underscore'', ''bootstrap''], function() { // core dependencies are loaded... });

Después de ejecutar la activator clean stage desde la línea de comandos, esperaba que el archivo core.js integrado incluyera todas mis dependencias especificadas concatenadas y minimizadas en un solo archivo, pero no incluye ninguna de ellas. Si especifico un archivo que no es WebJar como una dependencia para core.js , lo optimiza correctamente.

¿Es posible lo que intento hacer? He estado buscando bastante en Google y no he podido encontrar una respuesta clara de ninguna manera.

¡Gracias!


Estoy usando Play 2.4.3.

Se agregó addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7") a plugins.sbt

// rjs = RequireJS, uglifies, shrinks to one file, replaces WebJars with CDN client accepts them pipelineStages := Seq(rjs, digest, gzip)

Esto en mi build.sbt hace todo el trabajo de reducción, etc. para bower JS y webjars.