【问题标题】:RequireJs: How to define extra dependencies for 3rd party libraryRequireJs:如何为 3rd 方库定义额外的依赖项
【发布时间】:2013-12-20 04:46:17
【问题描述】:

基本上,我希望能够先加载一些模块,然后再加载其他模块。例如,我希望引导程序在主干之前首先加载。我可以这样声明依赖吗?

shim: {
    'backbone': {deps: ['bootstrap']}
}

【问题讨论】:

  • Backbone 中的代码不依赖于在 Backbone 之前加载的引导程序。那你为什么要这样做呢?
  • Boostrap 在加载时修改 jQuery,我遇到了一个错误,Backbone.$ 有时不包含 Bootstrap(但 window.$ 包含),我怀疑这是因为 Backbone 在 Bootstrap 之前加载。后来我通过在我的主应用程序中修改 Backbone.$ 来修复它。

标签: javascript twitter-bootstrap backbone.js requirejs


【解决方案1】:

是的,就是这样做的(当然是在require.config({ ... 块中)。还建议添加一个exports 键并将其设置为Backbone。这将允许您在 requiredefine 块内使用 Backbone,就好像它是真正的 AMD 模块一样:

define(['backbone'], function (Backbone) {
  // Backbone here is the function parameter instead of the global reference
});

阅读更多here。事实上,他们甚至以 Backbone 为例!

【讨论】:

  • 快速查看源代码会发现 Backbone 是 AMD 兼容的,并且默认情况下具有以下依赖项:下划线、jquery、导出。这就是为什么我想知道是否可以通过 require.config 定义额外的依赖项。尽管正如您所指出的,require.js 确实包含骨干作为他们的示例,所以我认为它可能会奏效。
  • 嗯。这可能意味着 requirejs 文档已经过时,也就是说,自编写文档以来,骨干网已更新为与 AMD 兼容。在这种情况下,也许我会向 requirejs 团队发送一封电子邮件,询问正确的程序。
猜你喜欢
  • 1970-01-01
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-06
  • 1970-01-01
相关资源
最近更新 更多