Ist es möglich, eine Play 2.3 App concat/optimieren JS (mit sbt-rjs), die in meiner App über WebJars enthalten ist?
Um ein konkretes Beispiel zu geben: Ich versuche ein core.js Modul zu erstellen, das alle meine Bibliotheken von Drittanbietern verkettet und verkleinert in einer einzigen Datei enthält, die dann als Abhängigkeit für andere AMD-Module angegeben werden kann.
Es wäre großartig, diese Bibliotheken über WebJars einzubinden, anstatt die Quelle "manuell" herunterzuladen.Optimierung von JS von WebJars mit sbt-rjs in einer Play 2.3.x App
Hier ein Ausschnitt aus meiner build.sbt Datei ist, wo ich meine webjar Abhängigkeiten bin Angabe:
// 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")
)
Hier ist meine requireJS Config
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'
}
]
});
Und schließlich ist hier mein Kern bauen .js Modul:
define(['angular', 'angularRoute', 'underscore', 'bootstrap'], function() {
// core dependencies are loaded...
});
Nach der Ausführung activator clean stage
von der Befehlszeile habe ich gehofft, dass die gebaute core.js Datei würde alle meine angegebenen Abhängigkeiten verkettet und minimiert in einer einzigen Datei enthalten, aber es enthält keine von ihnen. Wenn ich eine Nicht-WebJar-Datei als eine Abhängigkeit für core.js anmelde, wird das korrekt optimiert.
Was versuche ich zu tun? Ich habe ziemlich viel gegoogelt und konnte keine klare Antwort finden.
Danke!
Ich bin mir nicht sicher, ob das mit 'sbt-rjs' jetzt möglich ist. Möglicherweise möchten Sie ein Problem einreichen: https://github.com/sbt/sbt-rjs/issues –