【问题标题】:backbone with requirejs带有requirejs的主干
【发布时间】:2013-01-25 07:50:05
【问题描述】:

我正在构建一个复杂的 Web 应用程序并尝试将 requirejs 与主干一起使用。我发现backbonejs 是一个非AMD 框架,它限制我使用requirejs 开箱即用。

我在互联网上进行了研究,发现有一些补丁可以使主干 AMD 兼容。

如果以这种方式修补是没有问题的设置,请指导。由于backbonejs中的核心文件补丁,我会在应用开发过程中遇到任何问题吗?

如果这是一个愚蠢的问题,我深表歉意:)

【问题讨论】:

  • 为什么需要 AMD? Javascript 应用程序中的 AMD 会增加很多复杂性,高估对技术库的需求并不少见。
  • 很容易忽视早期组织/模块化代码的需要,然后突然发现你有一堆难以管理的意大利面条代码。 AMD 使将代码分成不同的模块变得更加容易,这在使用像骨干这样的框架时是一个优势(我认为)。

标签: javascript backbone.js requirejs


【解决方案1】:

不,这不是一个愚蠢的问题。我们实际上已经做到了这一点,并且到目前为止我们工作得很好:)

您可以按照以下指南操作:http://kilon.org/blog/2012/08/build-backbone-apps-using-requirejs/

不要忘记阅读有关使用 Jasmine 进行单元测试的章节。很好的组合。

【讨论】:

  • 依靠您的建议 :)
  • 你能帮我理解依赖填充的含义吗?
  • @MrinalPurohit 你可以试试我的答案,只需在 requirejs.config 的 properties 参数中插入一个 shim 属性。
  • @MrinalPurohit 当您正在加载的某些模块依赖于其他模块时,您可以通过 shims 实现这一点。或者当您需要它们导出访问器参数时。看看 Requirejs 文档:requirejs.org/docs/api.html#config-shim
【解决方案2】:

在 Require.js 2.0 之前,您必须修补 Backbone 以兼容 AMD。你可以在 github 上找到一些与 AMD 兼容的 Backbone 分支(例如 amdjs)。幸运的是,Require.js 2.0+ 添加了对使用 Shim 配置加载非 AMD 兼容脚本的支持。示例:

requirejs.config({
    shim: {
      "backbone": {
          deps: ["underscore", "jquery"],
          exports: "Backbone"
      }
    },

    paths: {
    // as usual
});

【讨论】:

  • 是的,你是对的。我研究过那个。只是想知道垫片的实际含义。垫片配置的含义是什么。请提供一些启示。
  • shim 的灵感来自 use.js,你可以看看它的源代码来了解一下:github.com/tbranyen/use.js/blob/master/use.js
  • 进一步,数据表库 AMD 兼容吗?或者我也需要消除这种依赖
  • 以前没有使用过数据表库,但它似乎不符合 AMD 标准。基本上,当您需要 define 函数参数中可用的库时,您需要填充任何不兼容 AMD 的库。
猜你喜欢
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多