Backbone.js and Require.js tool r.js

Backbone.js and Require.js tool r.js

本文关键字:js tool and Backbone Require      更新时间:2023-09-26

所以在我的TODO应用程序中,我使用了Backbone和require.js。一切都很酷。我将所有的模型、视图、集合分离到单个文件中,并使用require.js来加载它们。在我尝试使用控制台require.js优化器r.js将所有文件连接到一个之后。因此,我得到一个文件与我所有的库和类。但是当我试图运行时,我遇到了错误,主干未定义。我检查了文件,看到r.js生成的下一个东西:1. 首先,它将主干源代码添加到app- build .js文件中,并在后面放置下一个字符串

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

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

No as global and as result in my modules Backbone local variable is undefined。underscore.js也有同样的问题。R.js以同样的方式导入了它。

所以问题。如何避免这个问题与其他库在未来或如何解决这个问题?一些工艺吗?

您可能需要使用shim,因为根据RequireJS, Backbone期望在基础url目录中。在您的情况下,它似乎在/lib中。配置垫片。根据你正在使用的RequireJS版本,你只需要确保你正在使用的库是AMD兼容的。

在requireJS配置中:

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