RequireJS和依赖于按特定顺序加载的脚本

时间:2012-03-19 15:24:18

标签: javascript requirejs

我想在这个web application库中加入jquery-ui。

为此,我以这种方式更改了代码:

require.config({
  paths: {
    jquery: 'libs/jquery/jquery-min',
    ui: 'libs/jquery-ui/jquery-ui-min', // ******** I just added this line ********
    underscore: 'libs/underscore/underscore-min',
    backbone: 'libs/backbone/backbone-optamd3-min',
    text: 'libs/require/text'
  }
});

require(['views/app'], function(AppView){
  var app_view = new AppView;
});

有时我会收到以下错误:

jQuery is not defined

由于RequireJS以未确定的顺序加载和评估脚本, 我想这取决于jquery.ui库(取决于jquery),有时在jquery之前加载。

根据documentation,我可以使用order plugin。 无论如何,对于需要下划线的骨干,这个问题永远不会发生。

所以我的问题是:

为什么骨干(依赖于下划线)这个问题永远不会发生?

我必须使用order plugin来解决jquery-ui的问题吗?

1 个答案:

答案 0 :(得分:2)

Backbone 还需要加载order或其他一些插件...

除了你的情况,你已经选择不使用普通的Backbone,而是使用James Burke的一个分支(我想从这里开始:https://github.com/jrburke/backbone)。您可以通过指定backbone-optamd3-min的Backbone路径来指示这一点。好像你已经忘记了它;) 使用amd分支很好,只要你记得你做出了这个选择。如果您决定使用插件,则可以使用普通 Backbone.js。