使用require.js将jQuery、Underscore和Backbone作为AMD模块的最佳方式是什么?

What is the best way to include jQuery, Underscore, and Backbone as AMD modules using require.js?

本文关键字:模块 AMD 最佳 方式 是什么 作为 Backbone js require jQuery Underscore      更新时间:2023-09-26

我已经看到了许多不支持AMD的加载模块的变化,我想知道这样做的最佳实践是什么。

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

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

但是在使用AMD加载这些依赖项时存在很多问题,因为它们并不完全兼容AMD。

我创建了一个待办事项列表模板web应用程序,它将所有模块加载为AMD模块(没有加载器)。

查看:

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

Thomas Davis在他的未更新的例子中有一个更好的加载jquery/underscore/backbone的例子。从这里的加载器

开始

它使用这里的RequireJS命令插件来同步加载模块。

看一下这个例子。它很好地展示了如何使用主干和需求。它还展示了如何整齐地组织模型、视图和集合。

最新版本的RequireJS增加了使用NON-AMD JS文件的能力。

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

试试吧

我不理解AMD的一点是,看起来它只在需要的时候加载必要的js,但在演示应用程序中,当你访问应用程序的第一个页面加载时,它会加载所有的js html css文件。