【问题标题】:is it good to use amd version of backbone, jquery, underscore, etc?使用 AMD 版本的主干、jquery、下划线等好不好?
【发布时间】:2013-05-08 07:05:58
【问题描述】:

我正在从头开始我的项目结构。我正在使用 require.js、主干、下划线、引导程序等。我正在考虑使用 shim 配置来加载与主干、下划线等不兼容的 AMD。但是,现在,我认为最好使用它们的 AMD(异步模块定义)兼容版本,因为它允许并行加载资源。但是,我在哪里可以找到 AMD 兼容的下划线、主干和引导程序的可靠来源?我可以放心,我会得到最新版本的主干、引导程序和下划线 AMD 兼容版本。他们会在以后造成任何休息吗?

一句话,任何人都可以建议我使用它们的 AMD 兼容版本,或者推迟使用 shim 配置来加载它们的非 amd 版本以防止加载时间。我打算使用 require-jquery AMD。

【问题讨论】:

  • 你是指 Node.js 还是在客户端做这些事情?
  • @Matt 在客户端用于开发手机间隙应用程序
  • 我想我不知道这样的事情。它的所有 javascript 对吗?我认为这些库没有特定于处理器的实现,因为它们都是脚本语言并且是动态编译的。
  • 是的,它们都是脚本语言。
  • Ahhh AMD != Advanced Micro Devices.... 我对异步模块定义了解不多

标签: backbone.js twitter-bootstrap requirejs underscore.js amd


【解决方案1】:

我只能提供一种观点,但根据我的经验,在这个阶段,最好只是填充依赖项。我认为 amd 还没有被广泛采用,无法获得您需要的那种支持,以便使用 amd 版本让一切都很好地协同工作。

特别是,我在测试 (Jasmine) 时遇到了问题,我的 Jasmine 测试将引用一个“jQuery”,而我的应用程序代码将引用另一个,因为两者都不是全局变量。我只是放弃并改回使用垫片,并设法让测试工作(尽管并非没有一些工作)。

不确定它是否会有所帮助,但这是我的personal notes 将 RequireJS 集成到 BackboneJS/Rails 堆栈中。如果您要测试客户端代码,stubbing dependencies 上的部分可能会很有趣。一路走来,遇到不少困难……

【讨论】:

    【解决方案2】:

    是的,这样更好。我可以说,在使用 require 和骨干开发大型应用程序之后 - 它们可以很好地协同工作。使用使用 r.js 的构建过程将您的应用程序 js 简化为单个文件,因此显然不依赖于生产。作为对上述答案的回应,我们将它与 jasmine 集成为单元测试人员没有任何问题(我个人不会打扰单元测试,而是坚持使用行为测试)。

    这是了解它如何组合在一起的一个很好的起点:http://net.tutsplus.com/tutorials/javascript-ajax/a-requirejs-backbone-and-bower-starter-template/

    尽管将jam 视为包管理器或根本不考虑,而grunt 用于创建构建任务等但仍然有用,只是不要将这些东西视为福音,自己尝试一下!

    【讨论】:

      【解决方案3】:

      我个人不认为使用 AMD 版本库更好。 因为 1.依靠社区维护AMD版本 2. 使用 shim 并导出全局更好 3. 你不能指望所有的库都有 AMD 版本

      我花了好几个小时研究为什么通过 rjs 优化的代码说找不到 Backbone 并且必须删除主干源中的一些代码才能使其正常工作。

      简而言之,使用 shim。

      【讨论】:

        猜你喜欢
        • 2014-06-13
        • 1970-01-01
        • 1970-01-01
        • 2012-10-21
        • 2012-10-17
        • 2012-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多