Como usar o otimizador RequireJS na estrutura do Play?
Conforme anunciado, orjs
no Play pode
assegure-se de que quaisquer recursos JavaScript mencionados de dentro de uma WebJar sejam referenciados automaticamente a partir da CDN jsdelivr. Além disso, se algum arquivo .min.js for encontrado, ele será usado no lugar de .js. Um bônus adicional aqui é que não há alterações necessárias no seu html!
No entanto, não consigo fazer nada disso funcionar.
Tentei executar meu aplicativo Play no modo de produção e todos os meus javascripts webjar ainda estão sendo referidos como locais.Eu não vejo o.min
versão dos arquivos javascript sendo usados na produção.Não consigo que a injeção de dependência funcione no modo de produção. Por exemplo, quando eu quero injetarjquery
no meu código como este
define (['jquery'], function ($) {'use strict'; console.log ($. grep); retorna {soma: function (a, b) {retorna a + b;}};});
Posso fazer isso funcionar bem no modo dev, mas no modo de produção, orjs
falhou em dizer
[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)
Obviamente, ele está procurando o local errado para o jQuery, apesar da configuração gerada pelo Webjar
requirejs.config({"paths":{"jquery":["/webjars/jquery/1.11.1/jquery","jquery"]},"shim":{"jquery":{"exports":"$"}},"packages":[]}) }
ter o local correto parajquery
.
Estou usando o Play 2.4.0, compipelineStages := Seq(rjs, digest)
configuração no meu build.sbt.
Por favor, deixe-me saber onde eu entendi errado.
Obrigado!