Warum benötigt RequireJS jQuery nicht in den Aliasnamen der Funktionen?

7

Ich habe das Beispielprojekt für das neueste Version von RequireJS . Ihre Dokumentation impliziert, dass alles, was geladen wird, übergeben wird, in die Parameterliste der zugehörigen Funktion ( in entsprechender Reihenfolge).

Also habe ich beschlossen, es zu versuchen ... aber es scheint nicht zu funktionieren!

  • Firebug (Netto-Tab) zeigt jQuery als geladen an: so RequireJS obvoulosy hat diesen Teil erfolgreich ausgeführt
  • Firebug (Konsolenregisterkarte) zeigt '$ ist keine Funktion'

Meine Frage ist: Warum wird der Alias ​​nicht ausgefüllt?

MEIN CODE SAGT WIE:

%Vor%

THIER SAMPLE LÄUSST:

%Vor%     
Prisoner ZERO 12.04.2012, 20:13
quelle

3 Antworten

16

jQuery sollte über den speziellen Namen "jquery" geladen werden, andernfalls wird es nicht selbst registriert (da jQuery eine benannte Definition verwendet).

%Vor%

Das ist der Hauptgrund, warum named define als Anti-Pattern betrachtet wird und nur bei Bedarf verwendet werden sollte (wenn Sie mehrere Module in derselben Datei haben).

    
Miller Medeiros 13.04.2012, 15:11
quelle
2

Lesen Sie unbedingt die " README.md " für RequireJS + jQuery Beispielprojekt. Es gibt viele Komplikationen bei der Verwendung von jQuery, die Sie bei der Ersteinrichtung festlegen müssen, um die beste Lösung für Ihr Projekt zu finden. Sobald Sie herausgefunden haben, was das Beste für Sie ist und es implementiert haben, sollte es kein Problem mehr sein.

Ein großer Teil der Komplikation ergibt sich auch daraus, dass jQuery kein echtes AMD-Modul ist, sondern nur einen Hack in der Codebasis hat, um eine Definition zu machen, wenn es erkennt, dass die Define-Funktion verfügbar ist. Dies bedeutet beispielsweise, dass der Name des jQuery-Moduls immer "jquery" lautet (beachten Sie das Kleinbuchstabe "q"), es sei denn, Sie wickeln ihn selbst ein. Wenn Sie den Pfad dafür in Ihrer Konfiguration definieren, MÜSSEN Sie den Schlüssel "jquery" haben. wieder, mit einem Kleinbuchstaben "q") oder es wird eine Nichtübereinstimmung geben. Das hat uns beim ersten Einrichten von RequireJS in unserem Projekt (wir haben den Schlüssel "jQuery" genannt) gebissen.

    
James M. Greene 13.04.2012 15:19
quelle
0

Ist Ihr Skriptordner 'Skripte' oder 'Skripte'?

Sie stellen eine Anfrage für "Scripts / require.js" sowie für "scripts / jQuery / Core / jquery-1.7.2.min". Sehen Sie sich den Reiter "Net" von Firebug an ... Ich wette, dass Sie dort einen 404 generieren.

    
David Millet 13.04.2012 15:12
quelle

Tags und Links