一周前,我开始学习如何使用 Backbone.js 和 Underscore.js 中的 require.js。
这真的很困难,但三天前我读到 Underscore 将不再支持 Require.js(AMD)!现在我有点困惑。
我真的很喜欢脚本加载器的概念,不想错过它!
有人已经成功地将脚本加载器与 Backbone.js (0.5.3) 和 Underscore(1.3.0) 一起使用了吗?
谢谢你的帮助!
链接:另一个解决方案这里
一周前,我开始学习如何使用 Backbone.js 和 Underscore.js 中的 require.js。
这真的很困难,但三天前我读到 Underscore 将不再支持 Require.js(AMD)!现在我有点困惑。
我真的很喜欢脚本加载器的概念,不想错过它!
有人已经成功地将脚本加载器与 Backbone.js (0.5.3) 和 Underscore(1.3.0) 一起使用了吗?
谢谢你的帮助!
链接:另一个解决方案这里
即使underscore不支持AMD模块样式,您仍然可以使用require.js使其工作。
您仍然可以通过代理模块将其作为普通外部JavaScript源加载。
它的要点是这段代码:
// Filename: libs/underscore/underscore
// Loads the original underscore file from the libs/underscore folder
define(['order!libs/underscore/underscore-min'], function(){
// Tell Require.js that this module returns a reference to Underscore
return _;
});
完整的教程可以在这里找到:http://backbonetutorials.com/organizing-backbone-using-modules/
该教程是关于如何使用模块组织Backbone的内容。Require.js 在我看来是最好的选择,因为它包括一个优化器(压缩和合并)并允许您将您的 Backbone 代码解耦成模块。
如果您不知道如何将 Require.js 与最新版本的 Backbone.js 和 Underscore.js 集成,请查看我在 Github 上创建的样板代码。请注意,我使用 John-David Dalton 的 lodash 而不是 underscore,因为 lodash 提供更好的性能和自定义构建过程。我还使用 Require.js 2.0 提供的 Shim 配置,使非 AMD 兼容脚本(如 Backbone)与 AMD/Require.js 兼容。
我这里也有几个...
https://github.com/jcreamer898/RequireJS-Backbone-Starter
https://github.com/jcreamer898/Savefavs
更新于2012年7月8日
最新版本的RequireJS允许使用以下代码加载不符合AMD规范的库。
require.config({
'paths': {
"underscore": "libs/underscore-min",
"backbone": "libs/backbone-min"
},
'shim':
{
backbone: {
'deps': ['jquery', 'underscore'],
'exports': 'Backbone'
}
}
});
我找到了一個真正對我有效的解決方案: Tim Brayen
define([
'jquery',
'use!underscore',
'use!backbone',
我使用它来添加jQuery插件、自定义JS、Underscore和Backbone(无需更改代码!)...但似乎在使用jQuery Mobile时出现了问题...
你也可以看一下wrap,我还没有测试过它!