Backbone / Underscore très basique par l'intermédiaire du problème de Require.js me conduisant batty

Je tente de mettre en œuvre un TRÈS de base de test qui utilise jquery, underscore.js et backbone.js chargé par require.js et pour une raison que j'ai juste ne peut pas sembler obtenir tout correctement alignées. La recherche montre que d'autres n'ont pas eu ces mêmes problèmes et je sais que cela doit être quelque chose de simple que je suis tout simplement pas voir.

Le problème que j'ai c'est que lorsque backbone.js est en cours de chargement, il ne peut pas trouver une référence à _. J'ai trouvé d'autres personnes de signaler le même problème mais le problème est généralement de passer de la dépendance des références en gestionnaires dans le mauvais ordre ou d'autres problèmes évidents. Ce qui se passe quand la dorsale est en cours de chargement.

J'ai également vu un certain nombre de "mécanique" des solutions telles que 'tout mettre dans le même fichier" et vient de charger de manière traditionnelle par le fait d'avoir un certain nombre de script comprend, dans l'ordre, mais j'ai VRAIMENT envie de le faire fonctionner, car il semble être un puissant moyen d'approche.

J'ai d'abord commencé avec la structure ici http://backbonetutorials.com/organizing-backbone-using-modules/ qui travaille dans la démo, mais se sent un peu fragile car quand je tente de le faire très simples modifications ou mettre en place un simple échantillon à partir du sol, il se casse.

Après frapper ma tête contre ce depuis bien trop longtemps, je suis allé en arrière et trouvé cette page
Chargement de la colonne vertébrale et le trait de Soulignement à l'aide de RequireJS
avec un autre exemple simple et j'ai retrouvé l'espoir. Cependant, après la construction d'un nouveau test basé sur lui, je ne reçois TOUJOURS la même question, même si la 0.5.3-optamd branche d'épine dorsale est censé s'occuper de sa dépendance à l'égard de soulignement.

Sans plus tarder, voici le super-simple code qui devrait fonctionner mais au lieu de me conduire fou. En espérant que c'est quelque chose d'évident j'ai raté quelque sorte:

index.html

<!DOCTYPE html>
<html>
    <head>
        <title>Backbone.js/Underscore.js via Require.js Learning Page</title>
        <script src="js/libs/require/require.js"></script>
        <script src="js/main.js"></script>
    </head>
    <body>
        <div>Backbone.js/Underscore.js via Require.js Learning Page</div>
        <div class="testhook"></div>
    </body>
</html>

js/main.js

require.config({
    paths: { 
            'jquery': 'libs/jquery/1.7/jquery',
            'underscore': 'libs/underscore/1.2.2/underscore',
            'backbone': 'libs/backbone/0.5.3-optamd/backbone'
    },
    baseUrl: '/js',
    urlArgs: 'v=1.0'
});

require([
         'domReady',
         'app'
         ], 
         function( domReady, App ){
            domReady(function(){
                console.log( 'Dom is ready' );
                App.init();
            });
        }
);

js/app.js

//Filename: app.js
define([
        'jquery', 
        'underscore', 
        'backbone'
        ], 
        function( $, _, Backbone ){

            var init = function(){

                console.log( 'app.js > init()' );

                //jquery test (WORKS)
                $('.testhook').append('testhook append');

                //underscore test (WORKS)
                console.log( _.map([1, 2, 3], function(n){ return n * 2; }));

                //backbone test (DIES)
                var artist = new Backbone.Model({
                      firstName: "Wassily",
                      lastName: "Kandinsky"
                    });

                    artist.set({birthday: "December 16, 1866"});

                    console.log(JSON.stringify(artist));
            }

            return { init: init };
        }
);

Exacte de sortie de la console est:

Uncaught TypeError: Cannot call method 'extend' of undefined (backbone.js:150)
main.js:18    Dom is ready
app.js:11     app.js > init()
app.js:17     [2, 4, 6]
app.js:20     Uncaught TypeError: Cannot read property 'Model' of null (app.js:20)

NOTE:
Line 150 in unminified backbone.js is:
_.extend(Backbone.Model.prototype, Backbone.Events, {

Je suis sur une machine Windows 7 à l'aide de Chrome 17.0.938.0 dev-m.

Mon script versions sont:

backbone:       0.5.3-optand
jquery:         1.7
require:        1.0.1
underscore:     1.2.2

Ma structure de répertoire est:

js
+-- libs/
¦       +-- backbone/
¦       ¦     +-- 0.5.3-optamd/
¦       ¦                 +-- backbone.js
¦       +-- jquery/
¦       ¦     +-- 1.7/
¦       ¦          +-- jquery.js
¦       +-- require/
¦       ¦      +-- require.js
¦       +-- underscore/
¦              +-- 1.2.2/
¦                    +-- underscore.js
+-- app.js
+-- domReady.js
+-- main.js
+-- order.js
index.html

Je ne peux pas croire à quel point beaucoup de difficulté c'est de me donner et je suis vraiment en espérant que quelqu'un peut faire la lumière sur ce que le diable se passe ici.

source d'informationauteur greenanvil