Wie verwende ich den RequireJS-Optimierer im Play-Framework?
Wie angekündigt, dasrjs
im Spiel kann
Stellen Sie sicher, dass alle JavaScript-Ressourcen, auf die in einem WebJar verwiesen wird, automatisch aus dem jsdelivr-CDN referenziert werden. Wenn eine .min.js-Datei gefunden wird, wird diese anstelle von .js verwendet. Ein zusätzlicher Bonus ist, dass keine Änderung an Ihrem HTML-Code erforderlich ist!
Allerdings kann ich nichts davon zum Laufen bringen.
Ich habe versucht, meine Play-App im Produktionsmodus auszuführen, und alle meine Webjar-Java-Skripte werden immer noch als lokal bezeichnet.Ich sehe das @ nic.min
Version von Javascript-Dateien, die in der Produktion verwendet werden.Ich kann die Abhängigkeitsinjektion nicht für den Produktionsmodus aktivieren. Zum Beispiel, wenn ich @ spritzen wijquery
in meinem Code wie folgt
define (['jquery'], function ($) {'use strict'; console.log ($. grep); return {summe: function (a, b) {return a + b;}};});
Ich kann das im Entwicklungsmodus zum Laufen bringen, aber im Produktionsmodus ist dasrjs
sagte nicht
[info] Error: ENOENT, no such file or directory '/Users/khanguyen/Desktop/rjsdemo/target/web/rjs/build/js/jquery.js'
[info] In module tree:
[info] main
[info] app
[info]
[info] Error: Error: ENOENT, no such file or directory '/Users/khanguyen/Desktop/rjsdemo/target/web/rjs/build/js/jquery.js'
[info] In module tree:
[info] main
[info] app
[info]
[info] at Error (native)
Offensichtlich sucht es nach dem falschen Ort für jQuery, trotz des von Webjar erzeugten Konfigurations-Setups
requirejs.config({"paths":{"jquery":["/webjars/jquery/1.11.1/jquery","jquery"]},"shim":{"jquery":{"exports":"$"}},"packages":[]}) }
um den richtigen Ort für @ zu habjquery
.
Ich benutze Play 2.4.0 mitpipelineStages := Seq(rjs, digest)
Setup in meiner build.sbt.
Bitte teilen Sie mir mit, wo ich etwas falsch gemacht habe.
Vielen Dank