Playframework 2.1预编译ember把手

时间:2013-02-13 15:19:11

标签: ember.js playframework-2.0 handlebars.js rhino precompile

我正在尝试为PlayFramework 2.1编写一个SBT插件,该插件可以预编译位于app / assets / templates中的把手模板。我当然会在完成后分享这个插件。我发现这个howto http://eng.netwallet.com/2012/04/25/emberhandlebars-template-precompilation-with-play/有点过时了,但是将它改编为Play也没问题! 2.1。

然后我尝试编译一个简单的模板文件,但SBT失败并带有以下内容:

ember: processing template test

[error] /.../templates/test.handlebars: Compilation error[unexpected exception during Ember compilation (file=/.../templates/test.handlebars, options=List(), ember=ember-1.0.0-pre.4.js): org.mozilla.javascript.EvaluatorException: missing name after . operator (ember-1.0.0-pre.4.js#3309)]

[error] (MyProject/*:play-copy-assets) @6dap83075: Compilation error in /.../templates/test.handlebars:null

[error] (MyProject/compile:resources) @6dap83075: Compilation error in /.../templates/test.handlebars:null
第3309行的

ember-1.0.0-pre.4.js有一个volatile关键字,显然是在Rhino中保留的。

我远非犀牛专家,这就是为什么我想知道是否有人知道如何解决这个问题?我现在不是在寻找5 *解决方案。任何解决方案(即使是使用自定义ember.js的快速和肮脏的黑客)都有合理的机会为大多数简单的把手模板工作都可以工作,我们担心一旦功能出现并且SBT插件出来就抛光它。

提前致谢!

3 个答案:

答案 0 :(得分:0)

我为Grails编写了一个等效的插件。如果我从rhino 1.7R4切换到1.7R2,我会得到完全相同的错误。 你必须切换到org.mozilla:rhino:1.7R4。

如果您遇到其他问题,建议您查看我的源代码。你可以从这里开始:https://github.com/florent-blanvillain/grails-ember-templates-precompiler/blob/master/src/groovy/org/grails/plugin/ember/handlebars/Precompiler.groovy

干杯

答案 1 :(得分:0)

这是因为ember使用了为rhino保留的关键字volatile,因为它符合JavaScript EC3。将rhino设置为使用EC5无效

请参阅https://github.com/emberjs/ember.js/issues/1202

这在ember-1.0.rc1中更糟糕,因为他们正在使用其他保留关键字。 解决方案是使用重命名的

关键字来执行自定义的ember.js文件

答案 2 :(得分:0)

我在play 2.1中进行ember预编译的插件正在运行。它支持ember-1.0.0-pre.2,ember-1.0.0-rc.1和ember-1.0.0-rc.3,并解决与rhino相关的问题。

请参阅 https://github.com/krumpi/play-emberjs