Dojo 1.9 erstellt beim Laden der Ländereinstellung den Fehler 'multipleDefine'

8

Meine Dojo-Anwendung bricht nach dem Erstellen, beim Laden der App, wirft 'multipleDefine' und gibt folgenden Fehler:

  

Fehler {src: "dojoLoader", info: Objekt}

Nachricht: multipleDefine

  

info: Objekt {pid: "dojo", mittel: "dojo / nls / dojo_de-us", pack: Objekt,   URL: "dojo / nls / dojo_en-us.js", ausgeführt: 5 ...}

Hier ist mein Profil:

%Vor%

}

und hier ist die index.html innerhalb src /

  

HINWEIS: build.sh ist dafür verantwortlich, das Flag "isDebug" zu entfernen   Bereitstellung in der Produktion. Wenn Sie diese Flagge überhaupt ändern, werden Sie   Brechen Sie den Build!

%Vor%

Dies ist die generierte index.html in dist /

%Vor%

Ich habe überprüft, ob dojo / nls / dojo_en-us.js existiert und es ist in Ordnung. Ich stecke an diesem Punkt fest und habe keine Ahnung!

Jede Hilfe zur Behebung dieses Problems ist willkommen.

    
nvd_ai 17.05.2013, 01:28
quelle

3 Antworten

0

Können Sie Ihre Anforderungen in run.js eingeben? Brauchst du dort "dojo / _base / config"?

[bemerkte gerade den gleichen Fehler, weil ich es vergessen habe;)]

aus der Dokumentation:

  

Es ist wichtig, den Unterschied zwischen dojoConfig und dojo / _base / config zu beachten. dojoConfig ist rein für Eingabezwecke - so kommunizieren wir Konfigurationsparameter mit dem Loader und den Modulen. Während des Bootstrap-Prozesses wird dojo / _base / config von diesen Parametern für eine spätere Suche nach Modulcode aufgefüllt.

    
sebilasse 07.02.2014 13:03
quelle
0

Ich hatte ein ähnliches Problem mit dem Fehler

  

multipleDefine

wenn ich versuche, die Greensock-Bibliothek in mein Dojo-Projekt aufzunehmen.

Das Problem tritt auf, wenn eine andere Bibliothek außerhalb von Dojo ihre eigene define -Funktion deklariert (in meinem Fall war es TweenMax), wenn sie mit Dojo Loader kollidieren.

Eine Lösung besteht darin, sicherzustellen, dass der Dojo-Loader aufgerufen wird, nachdem Ihre Bibliothek oder Ihr Skript, die eine define -Funktion verwenden, geladen wurden.

Dojo sollte also das Neueste in Ihrem Skript sein, um es in die html head :

zu laden %Vor%

Dieses Problem ist auch mit jQuery UI und anderen Bibliotheken sichtbar .

    
GibboK 02.02.2017 11:11
quelle
0

Es gibt einen Hinweis dazu in der Loader-Dokumentation (zum Zeitpunkt dieser Antwort sowieso).

  

multipleDefine
  AMD define wurde als Verweis auf ein Modul bezeichnet, das über   bereits definiert. Die häufigste Ursache für dieses Problem ist das Laden   Module über Elemente im HTML-Dokument. Benutze den Lader.   Verwenden Sie keine Elemente. Die zweithäufigste Ursache ist das Bestehen   explizite Modulbezeichner zum Definieren; Tu das auch nicht.

Ссылка

Viele Bibliotheken implementieren jetzt UMD, die grundsätzlich versuchen werden, die Existenz eines AMD-Laders automatisch zu erkennen. Zum Beispiel, Bootstrap - das beliebte Front-End-Framework - implementiert UMD.

Das folgende Beispiel funktioniert also (beachten Sie, dass Bootstrap global geladen wird):

%Vor%

Das zweite Beispiel funktioniert jedoch nicht, da der UMD-Code den AMD Loader erkennt und sich selbst registriert. Dies löst den multipleDefine-Fehler gemäß der Dokumentation aus.

%Vor%

Wenn Sie die Bibliothek global laden möchten, verwenden Sie das erste Beispiel oben und laden Sie es vor dem Dojo-Loader. Wenn Sie die Bibliothek als AMD-Modul laden möchten, verwenden Sie den Loader.

    
Ali Gangji 29.07.2017 19:42
quelle

Tags und Links