【问题标题】:Backbone.js and Require.js: Mismatched anonymous define() module: function (_, Backbone) {Backbone.js 和 Require.js:不匹配的匿名 define() 模块:function (_, Backbone) {
【发布时间】:2014-04-17 21:09:55
【问题描述】:

我不熟悉使用 require.js,并且将以下 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) {

有什么线索吗?

【问题讨论】:

    标签: javascript jquery backbone.js requirejs


    【解决方案1】:

    我正在使用上面的配置,

    如您所见,将我的示例图像与您的声明方式进行比较,是否存在最小差异:

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

    当我在我使用的主 html 页面上声明“设置”时:

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

    【讨论】:

    • 查看我的配置。你知道是什么导致了错误吗?
    • 我相信如果你尝试像我一样声明,你可以解决你的问题,但我可以猜测你是在声明库的方式,正如你在我的示例中看到的那样,我没有制作在我的 js 库上的“路径”中引用,然后我只是重命名并使 baseUrl 从我的 lib 文件夹开始。
    • 谢谢克劳迪奥。此行是否添加了您的路由器? "require({"config/urlRoutes", "backbone", "bootstrap"] 这就是它现在似乎让我绊倒的地方
    • 是的,这只是用于骨干路由,您仍然遇到同样的错误吗?
    • 不再。我添加了对路由的调用,并在定义中定义了我需要的 JavaScript 文件。
    猜你喜欢
    • 2016-12-27
    • 2013-02-28
    • 2023-03-30
    • 2016-04-28
    • 2013-05-29
    • 2015-03-24
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多