我正在使用this作为指南,使用Backbone和RequireJS构建应用。由于Backbone是非AMD的,我正在使用RequireJS垫片,如上面提到的指南所述。
我的主要脚本如下:
require.config({
baseUrl: "js/",
paths: {
jquery: 'lib/jquery.min',
underscore: 'lib/underscore',
backbone: 'lib/backbone',
'backbone.localStorage': 'lib/backbone.localStorage-min'
},
shim: {
underscore: {
exports: "_"
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
'backbone.localStorage': {
deps: ['backbone'],
exports: 'Backbone'
}
}
});
该指南显示在其他模块中包含'backbone.localStorage'而不包括Backbone,因此我假设localStorage垫片中的deps: ['backbone']
或exports: Backbone
确保包含Backbone。
但是,我在Javascript控制台中一直收到undefined method: extend
错误
我正在开始像这样的其他模块:
define(['underscore','backbone.localStorage'], function(_, Backbone) {
如何在RequireJS中包含Backbone和Backbone.localStorage?
这是我第一次使用Backbone或RequireJS,所以如果我的问题很明显,我很抱歉......
答案 0 :(得分:2)
这是我的咖啡脚本版本:
shim:
underscore:
exports: "_"
backbone:
deps: ["underscore", "jquery"]
exports: "Backbone"
localStorage:
deps: ["backbone"]
paths:
backbone: "lib/backbone/backbone-min"
underscore: "lib/underscore/underscore-min"
localStorage: "lib/backbone.localStorage/backbone.localStorage"
然后在模块中
define [
"underscore"
"backbone"
"localStorage"
], (_, Backbone) ->
本地存储基本上将自身附加到Backbone对象,因此在它之前必须由AMD加载。