在咕嚕的的package.json我指定一個車把編譯:如何在Require.js中使用Handlebars運行時?
"grunt-contrib-handlebars": "0.7.0"
在Gruntfile我預編譯車把模板:
handlebars:
compile:
options:
amd: true
namespace: false
files: [{
expand: true
cwd: 'src/mustache/',
src: ['**/*.mustache']
dest: 'public/js/compiled/templates'
ext: '.js'
}]
每個編譯模板都需要一個車把AMD包裝:
define(['handlebars'], function(Handlebars) {
return Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
...
在鮑爾的bower.json我指定車把:
"handlebars": "1.3.0"
在我RequireJS配置我指定車把運行時:
require.config
baseUrl: '/js/compiled/'
paths:
'jquery': '../bower_components/jquery/jquery'
'underscore': '../bower_components/underscore/underscore'
'backbone': '../bower_components/backbone/backbone'
'handlebars': '../bower_components/handlebars/handlebars.runtime.amd'
...
(來源這裏https://github.com/components/handlebars.js/blob/v1.3.0/handlebars.runtime.amd.js)
當編譯模板需要車把
Handlebars = require 'handlebars'
把手是不確定的!我在這裏做錯了什麼!?我會很感激任何幫助!
我寧願不使用任何需要的插件。
不幸的是,這不適用於優化版本。它僅適用於未優化的版本,因爲Handlebars對象已添加到全局範圍。 –
啊!無意中學習後來遇到麻煩的道歉。將留下的答案,以防其他人出現這種情況。 – max
我遇到了類似的問題,並發現在構建配置中使用'wrapShim:true'可讓我在優化構建中使用Handlebars。看[這個問題](http:// stackoverflow。com/questions/24025475/handlebars-not-loading-after-require-js-optimization-with-grunt-requirejs/24025798#24025798)瞭解更多詳情。 –