Backbone.js和Require.js工具r.js

时间:2013-03-29 09:17:10

标签: javascript backbone.js requirejs r.js

所以在我的TODO应用程序中,我使用了Backbone和require.js。一切都很酷。我将所有模型,视图,集合分离为单个文件,并使用require.js加载它们。在我尝试使用控制台require.js优化器r.js将所有文件连接到一个文件之后因为我得到了一个包含所有lib和类的文件。但当我试图运行我遇到错误,Backbone undefined。我检查了文件,看到r.js生成了下一件事: 1.首先,它将主干源添加到app-built.js文件中,然后放置下一个字符串

define("lib/backbone", function(){});

结果我在窗口中有Backbone变量但在我的模块中我以require.js的方式使用它 define('models/todo',['jquery','underscore','lib/backbone'],function ($, _, Backbone) {

否全局和我的模块中的结果Backbone局部变量未定义。 和underscore.js一样的问题。 R.js以同样的方式导入它。

那么问题。如何避免将来的其他库存问题,或者现在如何解决这个问题? SOme技术?

1 个答案:

答案 0 :(得分:1)

您可能需要使用填充程序,因为根据RequireJS Backbone要求Backbone位于基本url目录中。在您的情况下,它似乎在/ lib中。 Config Shim。根据您正在使用的RequireJS版本,您只需要确保您使用的库与AMD兼容。

在您的requireJS配置中:

shim: {
  backbone: {
    deps: ["underscore", "jquery"],
    attach: "Backbone"
  },
  underscore: {
    attach: "_"
  }
}