2016-07-26 12 views
0

enter image description hereWarum kann das Requirejs-Modul nicht geladen werden?

Meine Verzeichnisstruktur wie oben ist, ich das Skript in index.html wie
<script src="lib/requirejs/require.js" data-main="js/app.js"></script>

Und js gelinkten/app.js folgenden

require.config({ 
    paths : { 
    'backbone' : 'lib/backbone/backbone-min.js', 
    'underscore' : 'lib/underscore/underscore-min.js', 
    'jquery' : 'lib/jquery/jquery.min.js', 
    'bootstrap' : 'lib/bootstrap/bootstrap.min.js', 
    }, 
    shim : { 
    bootstrap : { 
     deps : 'jquery' 
    }, 

    backbone : { 
     deps : ['jquery', 'underscore'], 
     exports : 'Backbone' 
    }, 
    underscore : { 
     exports : '_' 
    } 
    } 
}); 

require(['bootstrap'], function (bootstrap) { 
    console.log('loaded') 
}) 

Es kann nicht Lade den Bootstrap. Konsole Protokoll ist Uncaught Error: Invalid require call

Antwort

0

Wie erklärt in the documentationInvalid require call wird generiert, wenn Sie einen Anruf tun:

require("foo", function() {...}) 

Dies ist nicht gültig, da Sie ein Array von Strings auf dem ersten Argument haben sollte. Oder wenn Sie den CommonJS-Zucker verwenden, sollten Sie keinen Rückruf haben.

Es gibt keinen require Aufruf in dem Code, den Sie zeigen, der das obige tut. Sie müssen Ihre Codebasis überprüfen, um die Instanz des Anrufs zu finden, der den Fehler verursacht. Sie könnten den Text Ihrer Dateien durchsuchen. Wenn sich dies als zu schwierig erweist, können Sie Ihren Code so ändern, dass immer weniger Module geladen werden, bis der Fehler verschwindet, und dann nacheinander Module hinzufügen, bis der Fehler auftritt. Das würde es erlauben, die Möglichkeiten einzuschränken.

Ich habe jede Bibliothek verwendet, die Sie in Ihrer Frage anzeigen, aber keiner von ihnen hat jemals den Fehler verursacht, den Sie melden. Entweder haben Sie ein fehlerhaftes Build dieser Bibliotheken heruntergeladen, oder Sie haben an anderer Stelle benutzerdefinierten Code, der den Fehler verursacht.

+0

Danke, ich habe das Problem gelöst. Dieser Fehler tritt auf, weil im "Bootstrap" -Schlüssel der Wert "deps" ein Array von Abhängigkeiten sein muss. nicht string, obwohl das Modul ein Modul haben muss. wie 'deps: ['jquery']' – fasdgoc