2013-06-25 46 views
1

我們正在構建一個Ember/Java應用程序,我們在Maven構建期間使用Rhino來預編譯我們的Handlebars模板。直到今天,我們還使用了Handlebars RC3和Ember RC3,並且生活很好。今天,我們試圖更新到灰燼RC6和把手1.0.0,現在我們的犀牛預編譯器給出了這樣的:犀牛把手預編譯失敗,使用Handlebars 1.0.0 - _triageMustache缺失

js: "src/main/js/third-party/handlebars-1.0.0.js", line 2024: uncaught JavaScript runtime  
exception: TypeError: Cannot call method "replace" of undefined 
at src/main/js/third-party/handlebars-1.0.0.js:2024 
at src/main/js/third-party/handlebars-1.0.0.js:2038 
at src/main/js/third-party/handlebars-1.0.0.js:1747 
at src/main/js/third-party/handlebars-1.0.0.js:1368 
at src/main/js/third-party/handlebars-1.0.0.js:1860 
at src/main/js/third-party/handlebars-1.0.0.js:1356 
at src/main/js/third-party/handlebars-1.0.0.js:1860 
at src/main/js/third-party/handlebars-1.0.0.js:1356 
at src/main/js/rhino-handlebars-precompiler.js:75 (precompile) 
at src/main/js/rhino-handlebars-precompiler.js:89 (init) 
at src/main/js/rhino-handlebars-precompiler.js:93 
at src/main/js/rhino-handlebars-precompiler.js:15 

我們都試過了犀牛的編譯器的自己的味道和一個在這裏找到:https://github.com/locnguyen/ember-rhino-precompiler

更新

尋找更深的把手後,似乎車把1.0.0產生比把手RC3略有不同的操作碼,尤其是它缺少對_triageMustache助手的電話。對於這個車把片段:

{{#if enableLinks}}<a href="/foo?userId={{unbound loginAsAdminId}}&userAsId={{unbound legacyUserId}}" id="logoutAsLink">Return to {{loginAsAdminName}}</a>{{/if}} 

隨着RC3我們得到這樣的:

in compile appendContent "<a href="/userportal/returnToAdmin?userId=" 
getContext 0 
pushStringParam "loginAsAdminId" "ID" 
pushProgram 
pushProgram 
emptyHash 
invokeKnownHelper 1 "unbound" 
appendEscaped 
appendContent "&userAsId=" 
getContext 0 
pushStringParam "legacyUserId" "ID" 
pushProgram 
pushProgram 
emptyHash 
invokeKnownHelper 1 "unbound" 
appendEscaped 
appendContent "" id="logoutAsLink">Return to " 
getContext 0 
pushStringParam "loginAsAdminName" "ID" 
pushProgram 
pushProgram 
emptyHash 
invokeKnownHelper 1 "_triageMustache" 
appendEscaped 
appendContent "</a>" 

隨着1.0.0,我們得到這樣的:

in compile appendContent "<a href="/userportal/returnToAdmin?userId=" 
getContext 0 
pushStringParam "loginAsAdminId" "ID" 
pushProgram 
pushProgram 
emptyHash 
invokeKnownHelper 1 "unbound" 
appendEscaped 
appendContent "&userAsId=" 
getContext 0 
pushStringParam "legacyUserId" "ID" 
pushProgram 
pushProgram 
emptyHash 
invokeKnownHelper 1 "unbound" 
appendEscaped 
appendContent "" id="logoutAsLink">Return to " 
getContext 0 
pushStringParam "loginAsAdminName" "ID" 
pushProgram 
pushProgram 
emptyHash 
invokeHelper 1 
appendEscaped 
appendContent "</a>" 

注意,要invokeHelper最後一次通話丟失幫手名字。這是事情正在下降的地方。我不知道車把還不夠好,不知道爲什麼它沒有。

感謝, 斯科特

回答