Play Framework 2&requirejs - dist build中未遵循的路径

Pau*_*ith 7 playframework requirejs playframework-2.0

我在Play 2.0中遇到了一些requirejs实现的问题,在dev模式下可以找到所有模块,但是当运行dist时,它似乎不尊重我设置的路径.

这是设置:

/assets/javascripts/templates/template1/main.js:

require.config({
   baseUrl: "/assets/javascripts",
   paths : {
           jquery : [ 'core/lib/jquery/jquery-1.8.3' ],
           can : [ 'core/lib/canjs/can' ]
   }
});

require([ "jquery", "can", "core/global/moduleloader" ], function($, can, ml) {
   //do stuff

});
Run Code Online (Sandbox Code Playgroud)

在我打电话的模板中:

@helper.requireJs(core = routes.Assets.at("javascripts/require.js").url, 
    module = routes.Assets.at("javascripts/templates/template1/main").url)       
Run Code Online (Sandbox Code Playgroud)

在我的build.scala中,我告诉它要优化哪些文件:

val main = play.Project(appName, appVersion, appDependencies).settings(
    requireJs += "templates/template1/main"
)
Run Code Online (Sandbox Code Playgroud)

客户端所有依赖项都已解析,但在使用dist进行优化时,我得到:

[info] RequireJS optimization has begun...
[info] app.build.js:
[info] ({appDir: "javascripts",
[info]           baseUrl: ".",
[info]           dir:"javascripts-min",
[info]           modules: [{name: "templates/template1/main"}]})
model contains 41 documentable templates

Tracing dependencies for: templates/template1/main
JavaException: java.io.FileNotFoundException:       /Users/paulsmith/Projects/Experiments/play/Moduluar/target/scala-2.10/classes/public/javascripts-min/jquery.js (No such file or directory)
In module tree:
    templates/template1/main
Run Code Online (Sandbox Code Playgroud)

从我所看到的,路径配置被忽略,因此它正在错误地解决路径..这似乎是由于app.build.js覆盖了main.js中的配置.

有没有人遇到过这个问题?

谢谢,

保罗

Tom*_*ski 8

我有同样的问题,并将requireJsShim键添加到我的Build.scala修复了这个问题:

val main = play.Project(appName, appVersion, appDependencies).settings( 
    requireJs += "main.js",
    requireJsShim += "main.js"
}
Run Code Online (Sandbox Code Playgroud)

requireJsShim告诉play使用你的main.js中的设置,比如路径和填充程序,而不是play app.build.js中的默认值.

我正在使用Play 2.1.0; 此功能直到2012年12月12日才添加,所以我不确定它包含哪个2.1版本的候选版本

参考文献:
https : //play.lighthouseapp.com/projects/82401-play-20/tickets/945-allow-specifying-your-own-requirejs-build-file#ticket-945-4
https://github.com/playframework/Play20 /提交/ ba71f3967c3001cc0db8a4a7b4f9a31c8eebbc45