come pubblicizzato, il rjs
in gioco puòCome utilizzare RequireJS optimizer in Play framework?
garantire che eventuali risorse JavaScript riferimento all'interno di un WebJar vengono automaticamente riferimento dal jsdelivr CDN. Inoltre, se viene trovato qualsiasi file .min.js , verrà utilizzato al posto di .js. Un bonus aggiunto qui è che non è richiesta alcuna modifica al tuo html!
Tuttavia, non riesco a far funzionare nulla di tutto ciò.
- Ho provato a eseguire la mia app Play in modalità di produzione e tutti i miei javascrip Webjar sono ancora referenziati come locali.
- Non vedo la versione
.min
dei file javascript utilizzati nella produzione. Non riesco a ottenere l'iniezione di dipendenza per lavorare in modalità produzione. Per esempio, quando ho voglia di iniettare
jquery
nel mio codice come questodefine ([ 'jquery'], la funzione ($) { 'use strict';. console.log ($ grep); ritorno { sum: function (a, b) { return a + b; } }; });
posso farlo funzionare bene in modalità dev, ma in modalità di produzione, l'rjs
fallito dicendo
[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)
Ovviamente sta esaminando la posizione sbagliata per jQuery, nonostante la messa a punto di configurazione generato da Webjar
requirejs.config({"paths":{"jquery":["/webjars/jquery/1.11.1/jquery","jquery"]},"shim":{"jquery":{"exports":"$"}},"packages":[]}) }
per avere la posizione corretta per jquery
.
Sto utilizzando Play 2.4.0, con l'installazione pipelineStages := Seq(rjs, digest)
nel mio build.sbt.
Per favore fatemi sapere dove ho sbagliato.
Grazie!
Sto avendo lo stesso problema, mi chiedo se è un problema di configurazione e ho quindi aperto un problema qui https://github.com/webjars/sample-play2/issues/7 –
Ecco cosa ho notato finora , senza una chiara spiegazione del perché le cose funzionano o non funzionano. È necessario utilizzare Webjars classici. Quando dichiari i tuoi 'percorsi' in main.js, avvolgi gli URL in [parentesi quadre]. Ho deciso di abbandonare il modulo Webjar perché non voglio 2 versioni dello stesso file. Fammi sapere come va. Scriverò post con le istruzioni una volta capito come metterle insieme. – Khanetor
Hai abbandonato il modulo webjar? Quindi non li stai più usando? Sarebbe sfortunato. Mi chiedo ancora se ci manca semplicemente qualche configurazione o forse c'è un'incompatibilità (sbt-rjs non è stato aggiornato da un po '). –