2013-07-05 4 views
6

Ich habe eine Reihe von benannten requires-Modulen mit Konstruktor-als-Funktion.requirejs - konstruiere ein Modul, wenn es definiert ist, nicht wenn es erforderlich ist

define('myModule', [ 'import1', 'import2' ], function(i1, i2) { 
    ... 
}); 

Ich möchte in der Lage sein

  • Module HTML befestigen in corect Reihenfolge NICHT requirejs API über Script-Tags
  • bringen und abzunehmen Modulen weiter verwenden requirejs API

Nun, dann füge ich ein Skript mit Aufruf an ein Dokument an , Skript wurde erfolgreich geladen, aber Modul wird nicht definiert, Konstruktor wird nicht aufgerufen.

Ist es ein normales Verhalten? Gibt es eine Problemumgehung, um das zu beheben?

+0

Was brauchen Sie, um ein Modul zu definieren, wenn es nichts verwendet (benötigt)? – Bergi

+0

1. Ich habe einen Legacy-Code, der nichts über Module weiß und stattdessen auf Dateianhängen basiert. 2. Ich möchte einige Module haben, die globale Singleton-Objekte enthalten. Ich möchte sie als Skript in einem Kopf anhängen. Ich brauche Module hier, weil sie von einigen anderen Modulen abhängig sind. – Olegas

+0

r.js mit Optimierer, könnte eine solide Wahl sein – dmi3y

Antwort

6

Skript wurde erfolgreich geladen, aber Konstruktor wird nicht aufgerufen. Ist es ein normales Verhalten?

Ja. Sie werden nur bei Bedarf ausgeführt. Die könnte in register umbenannt werden. Außerdem muss es möglicherweise auf seine Abhängigkeiten warten.

Gibt es eine Workaround, um das zu beheben?

Wenn Sie es ausführen möchten, legen Sie einfach ein require() Anruf für sie (not in the same file though).

Ich habe einige Legacy-Code, der nichts über Module und hängt von Dateianhang statt.

Während der Skriptanhang sie (synchron!) Erfolgreich lädt, werden sie asynchron ausgeführt. Sie würden besser den Legacy-Code in require s auch wickeln (was nichts brechen sollte).

+0

Warum nicht in der gleichen Datei? Von einem angegebenen Link nicht verstanden ... – Olegas

+0

Technisch gibt es keine Einschränkungen, Module synchron auszuführen, wenn alle Abhängigkeiten geladen sind (durch die

Verwandte Themen