javascript - RequireJS 和依赖于以特定顺序加载的脚本

标签 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 的问题吗?

最佳答案

Backbone 确实也需要顺序或其他一些插件来按顺序加载...

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

关于javascript - RequireJS 和依赖于以特定顺序加载的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772904/

相关文章:

javascript - 谷歌可视化 - 仅在特定点显示图例

javascript - 顶部导航栏调整大小

requirejs - 为什么在使用 Require.js 时需要为 AngularJS 添加 "shim"?

javascript - 为什么 HTML 5 没有内置可编辑的组合框或本地菜单?

javascript - 有没有办法在 documentFragment 中找到元素?

javascript - AMD、requirejs - 希望确保某些内容始终最后执行

requirejs - 如何加载在单个文件中定义的多个命名 AMD 模块?

javascript - 如何在 RequireJS 中定义 "main"脚本的类型

javascript - RequireJS + NodeJS 返回 XMLHttpRequest 无法加载 'http' 没有 'Access-Control-Allow-Origin' header

javascript - 在 JavaScript 函数中更改 HTML 按钮的样式