Ist es möglich, dass eine Play 2.3-App JS (mit sbt-rjs) über WebJars in meiner App enthält?
Um ein konkretes Beispiel zu geben: Ich versuche, ein core.js- Modul zu erstellen, das alle meine Bibliotheken von Drittanbietern enthält, die in einer einzigen Datei verkettet und minimiert sind, die dann als Abhängigkeit für andere AMD-Module angegeben werden kann.
Es wäre großartig, diese Bibliotheken über WebJars einzuschließen, anstatt die Quelle "manuell" herunterzuladen.
Hier ist ein Ausschnitt aus meiner build.sbt- Datei, in der ich meine Webjar-Abhängigkeiten spezifiziere:
// 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 Build-Konfiguration
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 zum Schluss hier mein core.js- Modul:
define(['angular', 'angularRoute', 'underscore', 'bootstrap'], function() {
// core dependencies are loaded...
});
Nachdem activator clean stage
ich über die Befehlszeile ausgeführt hatte, hoffte ich, dass die erstellte Datei core.js alle meine angegebenen Abhängigkeiten in einer einzigen Datei verketten und minimieren würde, aber keine davon. Wenn ich eine Nicht-WebJar-Datei als Abhängigkeit für core.js spezifiziere , wird dies korrekt optimiert.
Ist das, was ich versuche, möglich? Ich habe ziemlich viel gegoogelt und konnte so oder so keine klare Antwort finden.
Vielen Dank!
sbt-rjs
. Vielleicht möchten Sie ein Problem einreichen: github.com/sbt/sbt-rjs/issuesAntworten:
Ich benutze Play 2.4.3.
Zu
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
plugins.sbt hinzugefügtDies in meiner build.sbt erledigt die gesamte Schrumpfungsarbeit usw., um JS und Webjars zu beugen.
quelle