【发布时间】:2012-08-13 13:18:34
【问题描述】:
我有一个 Backbone 应用程序,该应用程序从我的代码中使用 Backbone 的不同位置不确定地获取 Backbone is not defined 错误。有时它会先加载,然后网站加载,有时则不会。我使用以下内容作为我的 main.js:
require.config({
paths: {
jqueryui: 'libs/jquery/jquery-ui',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-min',
text: 'libs/require/text',
order: 'libs/require/order',
searchcollector: 'libs/jquery/searchcollector.plugin',
guiders: 'libs/jquery/guiders'
},
shim: {
'underscore': {
exports: '_'
},
'backbone': {
deps: ['underscore'],
exports: 'Backbone'
}
}
});
require([
'views/app',
'helpers'
], function(app) {
var app = window.app = new app();
});
我正在使用
<script data-main="/assets/js/main" src="/assets/js/libs/require/require-jquery.js"></script>
在我的 HTML 中,因此 jQuery 加载了 require。我从这个(http://stackoverflow.com/questions/8131265/loading-backbone-and-underscore-using-requirejs)SO线程中得到了这个建议,但似乎没有任何效果。 Shim 不应该先加载 Backbone,然后使其全局可用吗?任何帮助表示赞赏。
【问题讨论】:
-
可能与您的问题无关,但是如果您使用带有依赖项的“shim”配置(RequireJS 2.0 功能),则不需要使用订单插件,请参见:@987654321 @ 它说订单插件仅适用于 RequireJS 1.0
-
订单插件很好。事实上,我过去从 1.0 切换到 2.0 时也遇到过同样的问题(在 require2.0 中使用 order)并且不知道这些变化。我忘记了我的问题是否与 @eipark 的问题相似,但我确实记得它炸毁了我的代码。
标签: backbone.js requirejs