我已经看到了许多不支持AMD的加载模块的变化,我想知道这样做的最佳实践是什么。
最后,我想写这样的模块:
module.js:
define(["jQuery", "Underscore", "Backbone"], function($, _, Backbone) {
... module code here
}
但是在使用AMD加载这些依赖项时存在很多问题,因为它们并不完全兼容AMD。
我创建了一个待办事项列表模板web应用程序,它将所有模块加载为AMD模块(没有加载器)。
查看:
https://github.com/ronreiter/webapp-boilerplateThomas 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文件。