Backbone.js和Require.js: 匿名define()模块不匹配: function(_, Backbone) {

3

我刚接触require.js,以下是我的backbone应用中的app.js文件:

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

在我的index.html文件中的一个标签中,我放置了以下内容:
define(['underscore', 'backbone'], function (_, Backbone) {

然而,我在我的index.html文件中遇到了以下错误:
Uncaught ReferenceError: Backbone is not defined

以下是我的require.js文件:

Uncaught Error: Mismatched anonymous define() module: function (_, Backbone) {

有什么线索吗?
1个回答

0

我正在使用上述配置,

as you can see is there minimals diffs

如您所见,与您的声明方式相比,我的示例图像存在最小差异:

  • 您不需要在paths中声明shim库,只需使用相同的名称
  • 我的baseUrl从我的js\lib文件夹开始;
  • 我在我的json配置中使用文件名;

当我在主html页面上声明“setup”时,我会这样使用:

<script data-main="js/setup.js" src="js/lib/require.js"></script>

在查看我的配置文件时,你知道是什么导致了这个错误吗? - Kode
我相信如果你像我一样声明的话,你可以解决你的问题,但是我猜想你声明库文件的方式可能有些不同。正如你在我的示例中看到的,我并没有在“路径”上引用我的JS库,而是将它们重命名,并使baseUrl从我的lib文件夹开始。 - Claudio Santos
谢谢Claudio。这行代码是否添加了你的路由器?"require({"config/urlRoutes", "backbone", "bootstrap"]" 这似乎是我目前遇到问题的地方。 - Kode
1
是的,这只是骨干路线,您还是遇到了同样的错误吗? - Claudio Santos
不再需要了。我添加了对路由的调用,并在定义中定义了我所需的JavaScript文件。 - Kode

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接