【问题标题】:What is the best way to include jQuery, Underscore, and Backbone as AMD modules using require.js?使用 require.js 将 jQuery、Underscore 和 Backbone 作为 AMD 模块的最佳方法是什么?
【发布时间】:2011-12-26 08:57:29
【问题描述】:

我看到加载模块的许多变体尚不支持AMD,我想知道这样做的最佳做法是什么。

最后,我想写这样的模块:

module.js:

define(["jQuery", "Underscore", "Backbone"], function($, _, Backbone) {
    ... module code here
}

但是使用 AMD 加载这些依赖项存在很多问题,因为它们并非都与 AMD 兼容。

【问题讨论】:

  • AMD 是什么意思?不是 CPU 系列,对吧?
  • 不。异步模块定义。我必须承认 TLA 的选择很糟糕...... :)
  • 几年前(我认为是在英特尔切换之前),Mac 谣言团体充斥着对 amd 的代码引用。那时,它是自动挂载守护进程。 ;-)

标签: javascript backbone.js underscore.js requirejs


【解决方案1】:

我创建了一个 todo-list 样板网络应用程序,它将所有模块加载为 AMD 模块(没有加载器)。

检查一下:

https://github.com/ronreiter/webapp-boilerplate

【讨论】:

    【解决方案2】:

    Thomas Davis 在他的未更新示例中有一个更好的示例 (imo) 用于加载 jquery/underscore/backbone。先看看加载器here

    它使用 here 找到的 RequireJS 命令插件来同步加载模块。

    【讨论】:

      【解决方案3】:

      看看this 的例子。它很好地展示了如何将主干与 requirejs 一起使用。它还展示了如何整齐地组织模型、视图和集合。

      【讨论】:

      • 看起来这个例子是一个更新的版本,而不是教程在网站上解释的。谢谢。
      【解决方案4】:

      最新版本的 RequireJS 增加了使用非 AMD JS 文件的功能。

      require.config({ 
          'paths': { 
          "underscore": "libs/underscore-min", 
              "backbone": "libs/backbone-min"
          },
          'shim': 
          {
              backbone: {
                  'deps': ['jquery', 'underscore'],
                  'exports': 'Backbone'
              }
          }   
      });
      

      试试看。

      【讨论】:

        【解决方案5】:

        我不了解 AMD 的一件事是,它看起来只在需要时才加载必要的 js,但使用演示应用程序时,它会在您访问应用程序以加载第一页时加载所有 js html css 文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多