Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 当使用r.js-o时,Backbone.history.start()抛出一个TypeError_Backbone.js_Requirejs_R.js - Fatal编程技术网

Backbone.js 当使用r.js-o时,Backbone.history.start()抛出一个TypeError

Backbone.js 当使用r.js-o时,Backbone.history.start()抛出一个TypeError,backbone.js,requirejs,r.js,Backbone.js,Requirejs,R.js,当我在Backbone.js应用程序上运行r.js优化器时,出现以下错误: Uncaught TypeError: undefined is not a function 出现在输出的BoBo.js节的中间。 我删除了一些代码,直到我发现是什么导致了它,这似乎是在我调用Backbone.history.start()时发生的 我已经创建了一个简单的应用程序来复制这个bug,我已经在下面发布了。基本上,它创建了一个路由和“console.log”的“home”。它在未优化时工作良好 要优化应用程

当我在Backbone.js应用程序上运行r.js优化器时,出现以下错误:

Uncaught TypeError: undefined is not a function

出现在输出的BoBo.js节的中间。

我删除了一些代码,直到我发现是什么导致了它,这似乎是在我调用
Backbone.history.start()时发生的

我已经创建了一个简单的应用程序来复制这个bug,我已经在下面发布了。基本上,它创建了一个路由和“console.log”的“home”。它在未优化时工作良好

要优化应用程序,我使用:

node r.js -o app.build.js
从/js文件夹

我有Backbone.js 0.9.2、RequireJS 2.1.1、r.js 2.1.1

以前有人见过这个吗?我对Backbone.js/RequireJS还是相当陌生的,所以希望这只是我做错的愚蠢的事情

文件夹结构 代码 index.html app.build.js 谢谢

更新 下面是site-build.js的输出。有人能看出它有什么明显的问题吗


我内联了jQuery,现在它似乎工作正常。(它在的底部提到,但在优化部分的任何地方都没有提到。)


不确定这是否是正确的修复,但希望它能帮助其他人。

我知道这对您没有帮助,但您提供的代码对我来说效果非常好:sCheers,必须是我的计算机特有的东西。我将在另一台机器上试用,看看会发生什么。我已经用优化器制作了一些WTF,如果我记得清楚的话,它是一个在行尾看不见的字符。手动重新键入行,前一行和后一行修复了它。我已经用sublime去掉了所有的尾随空格,所以不应该有任何隐藏字符。我移动了一些线条,但没有欢乐。我刚刚用优化文件的输出更新了问题。
/js
  /libs
    - backbone.js
    - require.js
    - underscore.js
  - app.build.js
  - r.js
  - site.js
index.html
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    <script data-main="/js/site.js" src="/js/libs/require.js"></script>

</body>
</html>
requirejs.config({
    baseUrl     : 'js/',
    paths       : {
        jquery          : '//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min',
        backbone        : 'libs/backbone',
        underscore      : 'libs/underscore'
    },
    shim        : {
        backbone        : {
            deps            : ['underscore', 'jquery'],
            exports         : 'Backbone'
        },
        underscore      : {
            exports         : '_'
        }
    }
});

require(['jquery', 'backbone'], function($, Backbone) {

    var Router = Backbone.Router.extend({
            routes      : {
                ''          : 'home'
            },
            home        : function(){
                console.log('home');
            }
        }),
        appRouter;

    $(function() {

        appRouter = new Router();
        Backbone.history.start();

    });

});
({
    baseUrl: ".",
    name: 'site',
    paths: {
        jquery: 'empty:',
        underscore: 'libs/underscore',
        backbone: 'libs/backbone'
    },
    out: 'site-built.js',
    shim        : {
        backbone        : {
            deps            : ['underscore', 'jquery'],
            exports         : 'Backbone'
        },
        underscore      : {
            exports         : '_'
        }
    }
})