Sirengus Namen, ar i darb eigoje, danai mintys pradeda suktis apie kiemo aplink. Keletas Landschaftsarchitekten patarim kaip aplink susiplanuoti patiems. Prie pradedant galvoti apie Glynus arba alpinariumus, svarbiausia Yra pirmi ingsniai tai funkcinis teritorijos planavimas. Nesuskirsius teritorijos tinkamas zonas, augalai pasodinami zehn, kur j visai nereikia, iltnamis pastatomas toje vietoje, kur jis Skaityti daugiau. Tel. 370 608 16327 El. p. Infoskraidantikamera. lt Internet-Seite: skraidantikamera. lt Social Bookmarks: facebook paskyra Apraymas: Filmemacher 8211 fotografuojame i 70 8211 100 metr aukio naudojant dron. Sukuriame HD raikos nuotraukas im Video siuetus. Silome pasli, sod, mik, medelyn apiros nuotraukas ich aukio. Daugiau ms darb pavyzdi rasite Internet-Seite Skaityti daugiau. Profesionalios technins, sodo arnos (gera kaina) PVC laistymo arnos: PVC, dviej sluoksni laistymo arna, sutvirtinta tinkleliu i poliesterio sil atspari ultravioletiniams spinduliams kokybs-Zertifikat spalva anderem 58 skersmens, 16 mm, 8211 kaina 0,90 Ltm 34 skersmens, 19 mm. 8211 kaina 1,20 Ltm 1 col. Skersmens, 25 mm, 8211 kaina 2.30 Ltm Profesionalios PVC auktos kokybs Skaityti daugiau. Ein Javascript-Modul Loader RequireJS API Usage Sect 1 Load JavaScript-Dateien sect 1.1 RequireJS nimmt einen anderen Ansatz für das Script-Laden als herkömmliche ltscriptgt-Tags. Während es auch schnell laufen und optimieren kann, ist das primäre Ziel, modularen Code zu fördern. Als Teil davon fördert es die Verwendung von Modul-IDs anstelle von URLs für Skript-Tags. RequireJS lädt den gesamten Code relativ zu einer baseUrl. Die baseUrl wird normalerweise auf das gleiche Verzeichnis gesetzt wie das Skript, das in einem Data-main-Attribut für das Skript der obersten Ebene zum Laden für eine Seite verwendet wird. Das Attribut data-main ist ein spezielles Attribut, das required. js zum Start des Script-Ladens prüft. Dieses Beispiel wird am Ende mit einem baseUrl von Skripten: Oder, baseUrl kann manuell über die RequireJS-config festgelegt werden. Wenn es keine explizite config und data-main nicht verwendet wird, dann ist die Standard-baseUrl das Verzeichnis, das die HTML-Seite mit RequireJS enthält. RequireJS nimmt außerdem standardmäßig an, dass alle Abhängigkeiten Skripts sind, sodass nicht erwartet wird, dass ein nachgestellte Suffix ".js" auf Modul-IDs angezeigt wird. RequireJS fügt sie automatisch hinzu, wenn die Modul-ID in einen Pfad übersetzt wird. Mit den Pfaden config. Können Sie Standorte einer Gruppe von Skripts einrichten. Mit all diesen Fähigkeiten können Sie kleinere Strings für Scripts im Vergleich zu herkömmlichen ltscriptgt-Tags verwenden. Es kann vorkommen, dass Sie ein Skript direkt verweisen und nicht mit den baseUrl-Pfadregeln übereinstimmen, um es zu finden. Wenn eine Modul-ID eines der folgenden Merkmale aufweist, wird die ID nicht über die baseUrl-Pfadkonfiguration übergeben und nur wie eine reguläre URL behandelt, die relativ zum Dokument ist: Endet in. js. Beginnt mit einem. Enthält ein URL-Protokoll, wie http: oder https :. Im Allgemeinen ist es am besten, die baseUrl und Pfade config verwenden, um Pfade für Modul-IDs zu setzen. Auf diese Weise erhalten Sie mehr Flexibilität bei der Umbenennung und Konfiguration der Pfade zu verschiedenen Standorten für Optimierungs-Builds. Um eine Reihe von Konfigurationen zu vermeiden, ist es am besten, tiefe Ordnerhierarchien für Scripts zu vermeiden und stattdessen entweder alle Skripts in baseUrl zu behalten oder wenn Sie den vom Libraryvendor bereitgestellten Code aus Ihrem App-Code trennen möchten, verwenden Sie ein Verzeichnis-Layout Wie diese: Beachten Sie als Teil dieses Beispiels, Anbieter-Bibliotheken wie jQuery nicht über ihre Versionsnummern in ihren Dateinamen. Es wird empfohlen, diese Version info in einer separaten Textdatei zu speichern, wenn Sie es verfolgen möchten, oder wenn Sie ein Tool wie Volo verwenden. Wird es die package. json mit den Versionsinformationen stempeln, aber die Datei auf dem Datenträger als jquery. js beibehalten. Dies ermöglicht Ihnen, die sehr minimale Konfiguration haben, anstatt einen Eintrag in die Pfade config für jede Bibliothek setzen. Konfigurieren Sie beispielsweise jquery jquery-1.7.2. Idealerweise werden die Skripts, die Sie laden, Module sein, die durch den Aufruf von define () definiert werden. Allerdings müssen Sie möglicherweise einige traditionallegacy Browser-Globalskripts verwenden, die ihre Abhängigkeiten nicht über define () ausdrücken. Für diejenigen, können Sie die shim config. Um ihre Abhängigkeiten richtig auszudrücken. Wenn Sie die Abhängigkeiten nicht ausdrücken, werden Sie wahrscheinlich Laden Fehler seit RequireJS lädt Skripts asynchron und außer Betrieb für Geschwindigkeit. Data-main Entry Point sect 1.2 Das Data-main-Attribut ist ein spezielles Attribut, das erforderlich ist. js wird prüfen, ob das Script geladen werden soll: In der Regel wird ein Data-main-Skript verwendet, um Konfigurationsoptionen festzulegen und dann das erste Anwendungsmodul zu laden. Hinweis: Das Skript-Tag require. js erzeugt für Ihr data-main-Modul das async-Attribut. Dies bedeutet, dass Sie nicht davon ausgehen können, dass die Last und die Ausführung des Daten-Hauptskripts vor anderen Skripten beendet wird, auf die später in derselben Seite verwiesen wird. Beispielsweise wird diese Anordnung nach dem Zufallsprinzip fehlschlagen, wenn der require. config-Pfad für das foo-Modul nicht gesetzt wurde, bevor es require () d später ist: Wenn Sie require () - Aufrufe in der HTML-Seite machen wollen, dann ist es am besten Keine Daten-main verwenden. Data-main ist nur für den Gebrauch gedacht, wenn die Seite nur einen Haupteingangspunkt, das Data-Script hat. Für Seiten, die inline require () - Aufrufe machen möchten, empfiehlt es sich, diejenigen innerhalb eines require () - Aufrufs für die Konfiguration zu verschachteln: Definieren eines Modulsektors 1.3 Ein Modul unterscheidet sich von einer herkömmlichen Skriptdatei darin, dass es einen gut skizierten definiert Objekt, das die Verschmutzung des globalen Namespaces vermeidet. Er kann explizit seine Abhängigkeiten auflisten und diese Abhängigkeiten behandeln, ohne auf globale Objekte verweisen zu müssen, sondern stattdessen die Abhängigkeiten als Argumente für die Funktion zu erhalten, die das Modul definiert. Module in RequireJS sind eine Erweiterung des Modul Pattern. Mit dem Vorteil, nicht brauchen globals auf andere Module zu verweisen. Die RequireJS-Syntax für Module erlaubt es, so schnell wie möglich, auch nicht in der Reihenfolge, aber in der korrekten Abhängigkeitsreihenfolge geladen zu werden, und da globale Variablen nicht erstellt werden, können mehrere Versionen eines Moduls in einer Seite geladen werden . (Wenn Sie mit den CommonJS-Modulen vertraut sind oder diese verwenden, lesen Sie bitte auch die CommonJS-Hinweise, wie das RequireJS-Modulformat den CommonJS-Modulen zugeordnet wird). Es sollte nur eine Modul-Definition pro Datei auf dem Datenträger. Die Module können durch das Optimierungswerkzeug in optimierte Bündel gruppiert werden. Simple NameValue Pairs sect 1.3.1 Wenn das Modul keine Abhängigkeiten hat und es sich nur um eine Sammlung von Namenswertpaaren handelt, dann geben Sie einfach ein Objektliteral an define (): Definition Funktionen sect 1.3.2 Wenn das Modul keine Abhängigkeiten hat , Aber muss eine Funktion verwenden, um einige Setup-Arbeit zu tun, dann definieren, übergeben eine Funktion zu definieren (): Definition Funktionen mit Abhängigkeiten Sektor 1.3.3 Wenn das Modul Abhängigkeiten hat, sollte das erste Argument ein Array von Abhängigkeitsnamen sein, Und das zweite Argument sollte eine Definitionsfunktion sein. Die Funktion wird aufgerufen, um das Modul zu definieren, sobald alle Abhängigkeiten geladen sind. Die Funktion sollte ein Objekt zurückgeben, das das Modul definiert. Die Abhängigkeiten werden als Funktionsargumente an die Definitionsfunktion übergeben, die in der Reihenfolge der Reihenfolge im Abhängigkeitsarray aufgelistet sind: In diesem Beispiel wird ein MyShirt-Modul erstellt. Es kommt auf mycart und myinventory an. Auf der Festplatte sind die Dateien wie folgt aufgebaut: Der obige Funktionsaufruf gibt zwei Argumente, einen Wagen und ein Inventar an. Dies sind die Module, die durch die Namen der. cart - und. inventory-Module dargestellt werden. Die Funktion wird erst aufgerufen, wenn die Module mycart und myinventory geladen wurden und die Funktion die Module als Cart - und Inventory-Argumente empfängt. Module, die Globale definieren, werden explizit abgeraten, sodass mehrere Versionen eines Moduls in einer Seite zu einem Zeitpunkt existieren können (siehe Erweiterte Verwendung). Außerdem sollte die Reihenfolge der Funktionsargumente mit der Reihenfolge der Abhängigkeiten übereinstimmen. Das Rückgabeobjekt des Funktionsaufrufs definiert das myshirt-Modul. Durch die Definition von Modulen auf diese Weise, ist myshirt nicht als globales Objekt vorhanden. Definieren eines Moduls als Funktionssekt 1.3.4 Module müssen keine Objekte zurückgeben. Jeder gültige Rückgabewert einer Funktion ist zulässig. Hier ist ein Modul, das eine Funktion als Moduldefinition zurückgibt: Definieren eines Moduls mit vereinfachtem CommonJS Wrapper sect 1.3.5 Wenn Sie einen Code, der im herkömmlichen CommonJS-Modul geschrieben wurde, wiederverwenden möchten, Array von Abhängigkeiten verwendet, und Sie können es vorziehen, eine direkte Ausrichtung des Abhängigkeitsnamens auf die lokale Variable zu haben, die für diese Abhängigkeit verwendet wird. Sie können den vereinfachten CommonJS-Wrapper für diese Fälle verwenden: Dieser Wrapper setzt auf Function. prototype. toString (), um einen nützlichen Zeichenfolgenwert des Funktionsinhalts zu geben. Dies funktioniert nicht bei einigen Geräten wie der PS3 und einigen älteren Opera Mobile Browsern. Verwenden Sie das Optimierungsprogramm, um die Abhängigkeiten im Array-Format für die Verwendung auf diesen Geräten herauszuziehen. Definieren eines Moduls mit einem Namensfeld 1.3.6 Einige define () - Aufrufe, die einen Namen für das Modul als erstes Argument zu definieren haben (): Diese werden normalerweise vom Optimierungswerkzeug generiert. Sie können Module selbst explizit benennen, aber es macht die Module weniger portabel - wenn Sie die Datei in ein anderes Verzeichnis verschieben, müssen Sie den Namen ändern. Es ist normalerweise am besten, die Codierung in einem Namen für das Modul zu vermeiden und lassen Sie einfach das Optimierungstool in den Modulnamen brennen. Das Optimierungswerkzeug muss die Namen hinzufügen, damit mehr als ein Modul in einer Datei gebündelt werden kann, um ein schnelleres Laden im Browser zu ermöglichen. Weitere Module Hinweise sect 1.3.7 Ein Modul pro Datei. . Nur ein Modul sollte pro JavaScript-Datei definiert werden, da die Art des Modul-Name-zu-Datei-Pfad-Lookup-Algorithmus. Sie verwenden nur das Optimierungswerkzeug, um mehrere Module in optimierte Dateien zu gruppieren. Relative Modulnamen in define (). Für erfordernde (.relativename) Aufrufe, die innerhalb eines define () - Funktionsaufrufs geschehen können, müssen Sie unbedingt nach einer Abhängigkeit fragen, damit der relative Name korrekt gelöst wird: Oder besser noch die verkürzte Syntax, die verfügbar ist Mit übersetzenden CommonJS-Modulen: In diesem Formular wird Function. prototype. toString () verwendet, um die require () - Aufrufe zu finden und sie dem Abhängigkeitsarray hinzuzufügen, zusammen mit require, damit der Code korrekt mit relativen Pfaden funktioniert. Relative Pfade sind wirklich nützlich, wenn Sie ein paar Module innerhalb eines Verzeichnisses erstellen, damit Sie das Verzeichnis mit anderen Personen oder anderen Projekten freigeben können, und Sie in der Lage sein, ein Handle über die Geschwistermodule in diesem Verzeichnis zu erhalten, ohne es müssen Kennen den Namen der Verzeichnisse. Relative Modulnamen beziehen sich auf andere Namen, nicht auf Pfade. Der Loader speichert Module nach ihrem Namen und nicht nach ihrem Pfad intern. Bei relativen Namensreferenzen werden diese relativ zum Modulnamen, der den Verweis bildet, aufgelöst, dann wird dieser Modulname oder ID in einen Pfad konvertiert, wenn er geladen werden muss. Beispielcode für ein Rechenpaket, das über ein Haupt - und Extras-Modul verfügt: wo das main. js-Modul wie folgt aussieht: Wenn dies die Pfade config: Und ein require (compute) ist, dann libcomputemain. js wird das Modul haben Name der Berechnung. Wenn es nach. extras fragt, wird das relativ zu compute, also compute. extras aufgelöst, die nur Extras normalisiert. Da es für diesen Modulnamen keine Pfade config gibt, wird der generierte Pfad für libextras. js angegeben, was nicht korrekt ist. Für diesen Fall ist Pakete config eine bessere Option, da es das Setzen des Hauptmoduls als compute erlaubt, aber intern lädt der Loader das Modul mit der ID von computemain, so dass die relative Referenz für. extras funktioniert. Eine weitere Möglichkeit besteht darin, ein Modul in libcompute. js zu konstruieren, das eben definiert ist (.computemain, function (m)). Dann gibt es keine Notwendigkeit für Pfade oder Pakete config. Oder stellen Sie nicht, dass die Pfade oder Pakete config und machen die oberste Ebene erfordern Anruf wie erforderlich (computemain). Generieren Sie URLs relativ zum Modul. Möglicherweise müssen Sie eine URL generieren, die relativ zu einem Modul ist. Um dies zu tun, fragen Sie nach erfordern als eine Abhängigkeit und verwenden Sie dann require. toUrl (), um die URL zu generieren: Debuggen der Konsole. Wenn Sie mit einem Modul arbeiten müssen, das Sie bereits über einen erfordern (modulename, function ()) - Aufruf in der JavaScript-Konsole geladen haben, können Sie das require () - Formular verwenden, das nur den String-Namen des Moduls verwendet Das funktioniert nur, wenn modulename zuvor über die async version von require: require (modulename) geladen wurde. Wenn Sie einen relativen Pfad verwenden, wie zB. modulename, funktionieren diese nur innerhalb von definieren Circular Dependencies sect 1.3.8 Wenn Sie eine zirkuläre Abhängigkeit definieren (eine Notwendigkeit b und b benötigt a), dann in diesem Fall, wenn bs Modulfunktion aufgerufen wird, wird es Erhalten Sie einen unbestimmten Wert für eine. B kann nach dem Definieren der Module unter Verwendung der require () - Methode eine spätere Abfrage durchführen (unbedingt angeben, dass als eine Abhängigkeit erforderlich ist, so dass der rechte Kontext verwendet wird, um nach oben zu suchen): Normalerweise sollten Sie require () nicht abrufen müssen Ein Modul, sondern darauf, dass das Modul in die Funktion als Argument übergeben wird. Kreisförmige Abhängigkeiten sind selten und normalerweise ein Zeichen, dass Sie das Design überdenken möchten. Allerdings werden sie manchmal benötigt und in diesem Fall use () wie oben angegeben. Wenn Sie mit CommonJS-Modulen vertraut sind, können Sie stattdessen Exporte verwenden, um ein leeres Objekt für das Modul zu erstellen, das für andere Module sofort verfügbar ist. Dadurch können Sie auf beiden Seiten einer Kreisabhängigkeit sicher auf dem anderen Modul bleiben. Dies funktioniert nur, wenn jedes Modul ein Objekt für den Modulwert exportiert, nicht für eine Funktion: Oder wenn Sie den Abhängigkeitsmatrix-Ansatz verwenden, fragen Sie nach der speziellen Exportenabhängigkeit: Geben Sie eine JSONP-Serviceabhängigkeit an Sekt 1.3.9 JSONP ist ein Weg Einige Dienste in JavaScript aufzurufen. Es funktioniert über Domänen und es ist ein etablierter Ansatz zum Aufrufen von Diensten, die nur ein HTTP-GET über ein Skript-Tag erfordern. Um einen JSONP-Dienst in RequireJS zu verwenden, geben Sie define als Parameter für Rückrufparameter an. Dies bedeutet, dass Sie den Wert einer JSONP-URL erhalten können, als ob es sich um eine Moduldefinition handelte. Hier ist ein Beispiel, das einen JSONP-API-Endpunkt aufruft. In diesem Beispiel wird der JSONP-Callback-Parameter callback genannt, daher ruft callbackdefine an, dass die API die JSON-Antwort in einem define () - Wrapper umwickelt: Diese Verwendung von JSONP sollte auf JSONP-Dienste für die erste Anwendung beschränkt sein. Wenn der JSONP-Dienst abläuft, bedeutet dies, dass andere Module, die Sie define definieren, nicht ausgeführt werden, so dass die Fehlerbehandlung nicht robust ist. Nur JSONP-Rückgabewerte, die JSON-Objekte sind, werden unterstützt. Eine JSONP-Antwort, die ein Array, eine Zeichenfolge oder eine Zahl ist, wird nicht funktionieren. Diese Funktionalität sollte nicht für langwüchsige JSONP-Verbindungen verwendet werden - APIs, die sich mit Echtzeit-Streaming befassen. Diese Arten von APIs sollten nach dem Empfangen jeder Antwort mehr Skriptbereinigung ausführen, und RequireJS wird nur einmal eine JSONP-URL abrufen - nachfolgende Verwendungen der gleichen URL wie eine Abhängigkeit in einem require () - oder define () - Aufruf erhalten einen zwischengespeicherten Wert. Fehler beim Laden eines JSONP-Dienstes werden normalerweise über Timeouts für den Dienst aufgetreten, da das Script-Tag-Laden nicht sehr detailliert auf Netzwerkprobleme eingeht. Um Fehler zu erkennen, können Sie requirejs. onError () überschreiben, um Fehler zu erhalten. Weitere Informationen finden Sie im Abschnitt Handling Errors. Undefinieren eines Modulsektors 1.3.10 Es gibt eine globale Funktion requirejs. undef (). Das ein Undefinieren eines Moduls ermöglicht. Es wird den internen Zustand des Laders zurücksetzen, um die vorherige Definition des Moduls zu vergessen. Aber . Wird es nicht entfernen Sie das Modul aus anderen Modulen, die bereits definiert sind und bekam ein Handle auf dieses Modul als Abhängigkeit, wenn sie ausgeführt. So ist es wirklich nur nützlich, in Fehlersituationen zu verwenden, wenn keine anderen Module einen Griff auf einem Modulwert bekommen haben, oder als Teil einer zukünftigen Modulbeladung, die dieses Modul verwenden kann. Siehe Beispiel für den Error-Abschnitt. Wenn Sie eine anspruchsvollere Abhängigkeitsgraphenanalyse für die undefinierende Arbeit durchführen möchten, kann die semi-private onResourceLoad-API hilfreich sein. Mechanik sect 2 RequireJS lädt jede Abhängigkeit als script-Tag mit head. appendChild (). RequireJS wartet darauf, dass alle Abhängigkeiten geladen werden, stellt die richtige Reihenfolge dar, in der die Funktionen aufgerufen werden, die die Module definieren, und dann die Moduldefinitionsfunktionen aufruft, sobald die Abhängigkeiten für diese Funktionen aufgerufen wurden. Beachten Sie, dass die Abhängigkeiten für eine bestimmte Moduldefinitionsfunktion aufgrund ihrer Subabhängigkeitsbeziehungen und der Netzwerklastreihenfolge in beliebiger Reihenfolge aufgerufen werden können. Die Verwendung von RequireJS in einer serverseitigen JavaScript-Umgebung, die synchrones Laden hat, sollte ebenso einfach sein wie die Definition von require. load (). Das Build-System macht dies, die require. load-Methode für diese Umgebung kann in buildjslibrequirePatch. js gefunden werden. In Zukunft kann dieser Code in das Require-Verzeichnis als optionales Modul gezogen werden, das Sie in Ihr env laden können, um das richtige Ladeverhalten basierend auf der Host-Umgebung zu erhalten. Konfigurationsoptionen sect 3 Bei Verwendung von require () in der obersten HTML-Seite (oder der oberste Skriptdatei, die kein Modul definiert) kann als erste Option ein Konfigurationsobjekt übergeben werden: Sie können auch require. config abrufen Ihre Daten-Haupteintragsstelle. Aber beachten Sie, dass das Daten-Hauptskript asynchron geladen wird. Vermeiden Sie andere Einstiegsskripts, die fälschlicherweise davon ausgehen, dass data-main und ihre require. config immer vor dem Laden ihres Skripts ausgeführt werden. Außerdem können Sie das Konfigurationsobjekt so definieren, wie es die globale Variable benötigt, bevor require. js geladen wird und die Werte automatisch angewendet werden. In diesem Beispiel werden einige Abhängigkeiten angegeben, sobald require. js definiert require (): Hinweis: Es empfiehlt sich, var require zu verwenden und nicht window. require zu verwenden. Es verhält sich nicht richtig im IE. Unterstützte Konfigurationsoptionen: baseUrl. Den für alle Modul-Lookups zu verwendenden Stammpfad. Im obigen Beispiel wird mymodules script tag eine srcanotherpathmymodule. js haben. BaseUrl wird beim Laden einfacher. js-Dateien nicht verwendet (angezeigt durch eine Abhängigkeitszeichenfolge, die mit einem Schrägstrich beginnt, ein Protokoll hat oder in. js endet), werden diese Zeichenfolgen als-is verwendet, also werden a. js und b. js sein Geladen aus dem gleichen Verzeichnis wie die HTML-Seite, die das obige Snippet enthält. Wenn kein baseUrl explizit in der Konfiguration festgelegt ist, ist der Standardwert der Speicherort der HTML-Seite, die require. js lädt. Wird ein data-main-Attribut verwendet, wird dieser Pfad zur baseUrl. Die baseUrl kann eine URL auf einer anderen Domain als die Seite sein, die require. js lädt. RequireJS-Skript geladen funktioniert über Domänen. Die einzige Einschränkung liegt bei Textinhalten, die von Text-Plugins geladen werden: Diese Pfade sollten sich zumindest während der Entwicklung auf derselben Domain befinden wie die Seite. Das Optimierungswerkzeug wird Inline-Text-Plugin-Ressourcen, so dass nach Verwendung des Optimierungstools können Sie Ressourcen, die Text-Plugin-Ressourcen aus einer anderen Domäne. Pfade. Pfadzuordnungen für Modulnamen, die nicht direkt unter baseUrl gefunden werden. Die Pfadeinstellungen werden als relativ zu baseUrl angenommen, es sei denn, die Pfadeinstellung beginnt mit einem oder hat ein URL-Protokoll darin (wie http :). Mit dem obigen Beispiel config, somemodules Skript-Tag ist srcanotherpathsomev1.0module. js. Der Pfad, der für einen Modulnamen verwendet wird, sollte keine Erweiterung enthalten, da die Pfadzuordnung für ein Verzeichnis sein könnte. Der Pfadzuordnungscode fügt automatisch die Erweiterung. js hinzu, wenn der Modulname einem Pfad zugewiesen wird. Wenn require. toUrl () verwendet wird, wird es die entsprechende Erweiterung hinzufügen, wenn es für etwas wie eine Textvorlage ist. Wenn es in einem Browser ausgeführt wird, können Pfad-Fallbacks angegeben werden, die es ermöglichen, eine Last von einem CDN-Speicherort auszuprobieren, jedoch auf einen lokalen Speicherort zurückzufallen, wenn der CDN-Standort nicht geladen werden kann. Bündel . Einführung in RequireJS 2.1.10: ermöglicht die Konfiguration mehrerer Modul-IDs in einem anderen Skript gefunden werden. Beispiel: In dieser Konfiguration werden die Module main, util, text und texttemplate. html durch Laden der Modul-ID-Primary gefunden. Das Modul textsecondary. html kann durch Laden der Modul-ID sekundär gefunden werden. Dies richtet nur ein, wo ein Modul in einem Skript zu finden, das mehrere define () d-Module enthält. Diese Module werden nicht automatisch an die Bündel-Modul-ID gebunden. Die Bündel-Modul-ID wird nur für die Lokalisierung des Modulsatzes verwendet. Etwas ähnliches ist mit Pfad config möglich, aber es ist viel wordier, und die Pfade config route erlaubt keine Loader-Plugin-Ressourcen-IDs in ihrer Konfiguration, da die Pfade config Werte Pfadsegmente, nicht IDs sind. Bundles config ist nützlich, wenn ein Build und das Build-Ziel keine vorhandene Modul-ID ist oder wenn Sie Loader-Plugin-Ressourcen in eingebauten JS-Dateien haben, die nicht vom Loader-Plugin geladen werden sollen. Beachten Sie, dass die Schlüssel und Werte Modul-IDs sind. Nicht Bahnsegmente. Es handelt sich um absolute Modul-IDs, nicht um ein Modul-ID-Präfix wie Pfade config oder map config. Außerdem unterscheidet sich bundle config von map config darin, dass map config eine Eins-zu-eins-Modul-ID-Beziehung ist, wobei bundle config dazu dient, mehrere Modul-IDs auf eine Bündel-Modul-ID zu zeigen. Ab dem RequireJS 2.2.0 kann der Optimierer die Bündelkonfiguration generieren und in den Aufruf auf der obersten Ebene requirejs. config () einfügen. Weitere Informationen finden Sie in der bundlesConfigOutFile build config-Option. Unterlegscheibe. Konfigurieren Sie die Abhängigkeiten, Exporte und benutzerdefinierte Initialisierung für ältere, traditionelle Browser-Globalskripts, die define () nicht verwenden, um die Abhängigkeiten zu deklarieren und einen Modulwert festzulegen. Hier ist ein Beispiel. Es erfordert RequireJS 2.1.0 und setzt voraus, dass backbone. js, underscore. js und jquery. js im baseUrl-Verzeichnis installiert wurden. Wenn nicht, müssen Sie möglicherweise eine Pfadkonfiguration für sie festlegen: In RequireJS 2.0. Konnte die exportierte Eigenschaft in der Shim-config eine Funktion anstelle eines Strings sein. In diesem Fall funktionierte es genauso wie die init-Eigenschaft, wie oben gezeigt. Das Initmuster wird in RequireJS 2.1.0 verwendet, so dass ein Stringwert für Exporte für enforceDefine verwendet werden kann. Aber dann erlauben funktionale Arbeit, sobald die Bibliothek bekannt ist, geladen zu haben. Für Module, die nur jQuery oder Backbone-Plugins sind, die keinen Modulwert exportieren müssen, kann die shim config einfach ein Array von Abhängigkeiten sein: Beachten Sie jedoch, wenn Sie 404 Load-Erkennung im IE erhalten möchten, so dass Sie Pfad-Fallbacks oder verwenden können Err err............................................................... Um Module zu laden, die Teil von shim config sind oder verwendet werden, ist ein normaler Anruf erforderlich. Das Einstellen von Shim selbst löst keinen Code aus. Verwenden Sie nur Shim-Module als Abhängigkeiten für Shimed Scripts oder AMD-Bibliotheken ohne Abhängigkeiten und call define (), nachdem sie auch eine globale (wie jQuery oder lodash) erstellt haben. Andernfalls, wenn Sie ein AMD-Modul als Abhängigkeit für ein Shim-Konfigurationsmodul verwenden, kann dieses AMD-Modul nach einem Build erst dann ausgewertet werden, wenn der Shimed-Code im Build ausgeführt wird und ein Fehler auftritt. Das ultimative Update ist, um alle shimmed-Code auf optionale AMD define () - Aufrufe zu aktualisieren. Wenn es nicht möglich ist, den angepassten Code für die Verwendung von AMD define () - Aufrufen zu aktualisieren, verfügt das Optimierungsprogramm, wie von RequireJS 2.1.11, über eine WrapShim-Erstellungsoption, die automatisch versucht, den gekrempelten Code in einem define () für einen Build zu übernehmen. Dies ändert den Umfang der shimmed Abhängigkeiten, so ist es nicht garantiert, immer zu arbeiten, aber z. B. für shimmed Abhängigkeiten, die von einer AMD-Version von Backbone abhängen, kann es hilfreich sein. Die init-Funktion wird nicht für AMD-Module aufgerufen. Beispielsweise können Sie keine shim init-Funktion verwenden, um jQuerys noConflict aufzurufen. Siehe Mapping Module, um noConflict für einen alternativen Zugang zu jQuery zu verwenden. Shim config wird beim Ausführen von AMD-Modulen im Knoten über RequireJS nicht unterstützt (es funktioniert aber für den Optimierer). Je nach verkleinertem Modul kann es in Node fehlschlagen, da Node nicht die gleiche globale Umgebung wie Browser hat. Ab RequireJS 2.1.7 wird es Sie in der Konsole warnen, dass shim config nicht unterstützt wird, und es kann oder auch nicht funktionieren. Wenn Sie diese Nachricht unterdrücken möchten, können Sie requirejs. config () übergeben. Wichtige Optimiereranmerkungen für shim config: Verwenden Sie die mainConfigFile-Erstellungsoption, um die Datei anzugeben, in der die shim-config gefunden werden soll. Andernfalls kennt der Optimierer die shim config nicht. Die andere Option ist, die shim config im Build-Profil zu duplizieren. Mischen Sie CDN-Laden nicht mit shim config in einem Build. Beispiel-Szenario: Sie laden jQuery aus dem CDN aber verwenden Sie die Shim-config, um etwas wie die Aktienversion von Backbone, die von jQuery abhängt zu laden. Wenn Sie den Build machen, achten Sie darauf, inline jQuery in der eingebauten Datei und nicht laden Sie es aus dem CDN. Andernfalls wird Backbone inlined in der eingebauten Datei und es wird ausgeführt, bevor die CDN-geladene jQuery geladen wird. Dies liegt daran, dass die Shim-Konfiguration nur das Laden der Dateien verzögert, bis Abhängigkeiten geladen werden, aber keine automatische Umwandlung von definieren. Nach einem Build sind die Abhängigkeiten bereits inline, die shim config kann die Ausführung des non-define () d-Codes erst später verzögern. Define () d-Module arbeiten mit CDN geladenen Code nach einem Build, weil sie richtig wrap ihre Quelle in Factory-Funktion definieren, die nicht ausgeführt wird, bis Abhängigkeiten geladen werden. So die Lektion: shim config ist ein Stop-Lücke-Maß für nicht-modularen Code, Legacy-Code. Define () d Module sind besser. Für lokale, Multi-Datei-Builds, die oben genannten CDN Beratung gilt auch. Für jedes Shimmed-Skript müssen seine Abhängigkeiten geladen werden, bevor das Shimmed-Skript ausgeführt wird. Das bedeutet, entweder ihre Abhängigkeiten direkt in der Buid-Ebene aufzubauen, die das Shimmed-Skript enthält oder deren Abhängigkeiten mit einem require (, function ()) - Aufruf geladen werden, und dann einen geschachtelten require () - Aufruf für die Build-Ebene mit dem Shimmed-Skript ausführen. Wenn Sie uglifyjs verwenden, um den Code zu verkleinern, setzen Sie nicht die uglify-Option toplevel auf true, oder verwenden Sie die Befehlszeile nicht - mt. Diese Option mangles die globalen Namen, die shim verwendet, um Exporte zu finden. Karte. Für das vorgegebene Modulpräfix, anstatt das Modul mit der angegebenen ID zu laden, ersetzen Sie eine andere Modul-ID. Diese Art der Fähigkeit ist wirklich wichtig für größere Projekte, die zwei Sätze von Modulen haben können, die zwei verschiedene Versionen von foo verwenden müssen, aber sie müssen noch miteinander kooperieren. Dies ist bei der kontextunterstützten Multiversionsunterstützung nicht möglich. Darüber hinaus ist der Pfad config nur für die Einrichtung von Root-Pfaden für Modul-IDs, nicht für die Zuordnung einer Modul-ID zu einem anderen. Wenn die Module auf dem Datenträger wie folgt ausgelegt werden: Wenn somenewmodule benötigt (foo) wird es die foo1.2.js-Datei, und wenn someoldmodule benötigt (foo) wird es die foo1.0.js-Datei erhalten. Diese Funktion funktioniert nur für Skripte, die echte AMD-Module sind, die define () aufrufen und als anonyme Module registrieren. Verwenden Sie auch nur absolute Modul-IDs für map config. Relative IDs (wie ..something) funktionieren nicht. Es gibt auch Unterstützung für einen Kartenwert, dh für alle geladenen Module, verwenden Sie diese Kartenkonfiguration. Wenn es eine spezifischere Kartenkonfiguration gibt, wird diese einen Vorrang vor der Sternkonfiguration haben. Beispiel: Bedeutet, dass für jedes Modul außer someoldmodule, wenn foo gewünscht wird, stattdessen foo1.2 verwenden. Für someoldmodule nur, verwenden Sie foo1.0, wenn es für foo fragt. Hinweis: Bei der Erstellung von Builds mit Map Config muss die Map Config dem Optimierer zugeführt werden und die Build-Ausgabe muss noch einen requirejs config-Aufruf enthalten, der die Map Config einrichtet. Der Optimierer führt keine ID-Umbenennung während des Builds durch, da einige Abhängigkeitsreferenzen in einem Projekt vom Status der Laufzeitvariablen abhängen können. Daher macht das Optimierungsprogramm die Notwendigkeit einer Map-Config nach dem Build nicht ungültig. Config. Es besteht ein allgemeines Bedürfnis, Konfigurationsinformationen an ein Modul weiterzugeben. Diese Konfigurations-Info ist in der Regel als Teil der Anwendung bekannt, und es muss eine Möglichkeit, die bis zu einem Modul passieren. In RequireJS erfolgt dies mit der config-Option for requirejs. config (). Module können dann diese Information lesen, indem sie nach dem speziellen Abhängigkeitsmodul fragen und module. config () aufrufen. Beispiel: Für das Übergeben von config zu einem Paket. Ziel das Hauptmodul im Paket, nicht die Paket-ID: Pakete. Konfiguriert Lademodule aus CommonJS-Paketen. Weitere Informationen finden Sie im Paketpaket. NodeIdCompat. Knoten behandelt Modul-ID example. js und Beispiel das gleiche. Standardmäßig handelt es sich um zwei verschiedene IDs in RequireJS. Wenn Sie mit Modulen arbeiten, die von npm installiert werden, müssen Sie diesen Konfigurationswert auf true setzen, um Probleme mit der Auflösung zu vermeiden. Diese Option trifft nur zu, wenn das. js-Suffix anders behandelt wird, keine anderen Knotenentschließungen und Auswertungen wie zB. json-Dateiverarbeitung (JSON-Handling benötigt sowieso ein json-Loader-Plugin). Erhältlich ab 2.1.10. WaitSeconds. Die Anzahl der zu wartenden Sekunden, bevor Sie beim Laden eines Skripts aufgeben. Die Einstellung auf 0 deaktiviert das Timeout. Die Voreinstellung ist 7 Sekunden. Zusammenhang. Ein Name für einen Ladekontext. Dies ermöglicht require. js, mehrere Versionen von Modulen in einer Seite zu laden, solange jeder Aufruf auf der obersten Ebene einen spezifischen Kontextstring spezifiziert. Informationen zur korrekten Verwendung finden Sie im Abschnitt Multiversion Support. Deps Ein Array von Abhängigkeiten zum Laden. Nützlich, wenn Bedarf als ein Konfigurationsobjekt definiert wird, bevor require. js geladen wird und Sie Abhängigkeiten angeben möchten, sobald require () definiert ist. Die Verwendung von deps ist genauso wie ein require () - Aufruf, aber sobald der Loader die Konfiguration verarbeitet hat. Es blockiert keine anderen require () - Aufrufe vom Starten ihrer Anforderungen für Module, es ist nur eine Möglichkeit, einige Module zu beschreiben, asynchron als Teil eines config Block zu laden. Rückrufen . Eine Funktion, die ausgeführt wird, nachdem Deps geladen wurden. Nützlich, wenn Bedarf als ein Konfigurationsobjekt definiert wird, bevor require. js geladen wird, und Sie eine Funktion angeben möchten, die erforderlich ist, nachdem das deps array-Array geladen wurde. Erzwingen. Wenn diese Option auf true gesetzt ist, wird ein Fehler ausgelöst, wenn ein Skript lädt, das define () nicht aufruft oder ein Shim Exports-Zeichenfolgenwert exportiert, der überprüft werden kann. Weitere Informationen finden Sie unter Fangen von Lastfehlern im IE. Xhtml. Wenn auf true gesetzt, wird document. createElementNS () verwendet, um Skriptelemente zu erstellen. UrlArgs. Zusätzliche Abfragezeichenfolgenargumente, die an URLs angehängt werden, die RequireJS zum Abrufen von Ressourcen verwendet. Am nützlichsten für den Cache-Bust, wenn der Browser oder Server nicht richtig konfiguriert ist. Beispiel cache bust setting für urlArgs: Ab RequireJS 2.2.0 kann urlArgs eine Funktion sein. Wenn eine Funktion, wird es die Modul-ID und die URL als Parameter, und es sollte einen String, der am Ende der URL hinzugefügt werden. Geben Sie einen leeren String, wenn keine args. Achten Sie darauf, darauf zu achten, das Hinzufügen oder abhängig von den vorhandenen Zustand der URL. Beispiel: Während der Entwicklung kann es nützlich sein, dies zu verwenden, aber sicher sein, es zu entfernen, bevor Sie den Code bereitstellen. ScriptType. Geben Sie den Wert für das Typattribut an, das für Skript-Tags verwendet wird, die von RequireJS in das Dokument eingefügt wurden. Voreinstellung ist textjavascript. Um Firefoxs JavaScript 1.8-Funktionen zu verwenden, verwenden Sie textjavascriptversion1.8. SkipDataMain. Einführung in RequireJS 2.1.9: Wird auf true gesetzt. Überspringt das Scannen der Datenhauptattribute, um die Modulbeladung zu starten. Nützlich, wenn RequireJS in einer Utility-Bibliothek eingebettet ist, die mit anderen RequireJS-Bibliotheken auf der Seite interagieren kann, und die eingebettete Version sollte keine Daten-Hauptladung ausführen. Advanced Use Sect 4 Laden von Modulen aus Packages sect 4.1 RequireJS unterstützt das Laden von Modulen, die sich in einer CommonJS Packages-Verzeichnisstruktur befinden, aber einige zusätzliche Konfigurationen müssen angegeben werden, damit sie funktionieren. Insbesondere gibt es Unterstützung für die folgenden CommonJS Packages Features: Ein Paket kann mit einem Modul nameprefix verknüpft werden. Das Paket config kann die folgenden Eigenschaften für ein bestimmtes Paket angeben: name. Der Name des Pakets, das für die Modulname-Präfix-Zuordnung verwendet wird. Die Position auf der Festplatte. Standorte sind relativ zum baseUrl-Konfigurationswert, es sei denn, sie enthalten ein Protokoll oder starten mit einem Schrägstrich (). Main Der Name des Moduls innerhalb des Pakets, das verwendet werden sollte, wenn jemand ein Paketname benötigt. Der Standardwert ist main, also nur angeben, wenn er von der Voreinstellung abweicht. Der Wert ist relativ zum Paketordner. While the packages can have the CommonJS directory layout, the modules themselves should be in a module format that RequireJS can understand. Exception to the rule: if you are using the r. js Node adapter, the modules can be in the traditional CommonJS module format. You can use the CommonJS converter tool if you need to convert traditional CommonJS modules into the async module format that RequireJS uses. Only one version of a package can be used in a project context at a time. You can use RequireJS multiversion support to load two different module contexts, but if you want to use Package A and B in one context and they depend on different versions of Package C, then that will be a problem. This may change in the future. If you use a similar project layout as specified in the Start Guide. the start of your web project would look something like this (NodeRhino-based projects are similar, just use the contents of the scripts directory as the top-level project directory): Here is how the example directory layout looks with two packages, cart and store : project. html will have a script tag like this: This will instruct require. js to load scriptsmain. js. main. js uses the packages config to set up packages that are relative to require. js, which in this case are the source packages cart and store: A require of cart means that it will be loaded from scriptscartmain. js . since main is the default main module setting supported by RequireJS. A require of storeutil will be loaded from scriptsstoreutil. js . If the store package did not follow the main. js convention, and looked more like this: Then the RequireJS configuration would look like so: To avoid verbosity, it is strongly suggested to always use packages that use main convention in their structure. Multiversion Support sect 4.2 As mentioned in Configuration Options. multiple versions of a module can be loaded in a page by using different context configuration options. require. config() returns a require function that will use the context configuration. Here is an example that loads two different versions of the alpha and beta modules (this example is taken from one of the test files): Note that require is specified as a dependency for the module. This allows the require() function that is passed to the function callback to use the right context to load the modules correctly for multiversion support. If require is not specified as a dependency, then there will likely be an error. Loading Code After Page Load sect 4.3 The example above in the Multiversion Support section shows how code can later be loaded by nested require() calls. Web Worker Support sect 4.4 As of release 0.12, RequireJS can be run inside a Web Worker. Just use importScripts() inside a web worker to load require. js (or the JS file that contains the require() definition), then call require. You will likely need to set the baseUrl configuration option to make sure require() can find the scripts to load. You can see an example of its use by looking at one of the files used in the unit test . Rhino Support sect 4.5 RequireJS can be used in Rhino via the r. js adapter. See the r. js README for more information. Nashorn Support sect 4.6 As of RequireJS 2.1.16, RequireJS can be used in Nashorn. Java 8s JavaScript engine, via the r. js adapter. See the r. js README for more information. Handling Errors sect 4.7 The general class of errors are 404s for scripts (not found), network timeouts or errors in the scripts that are loaded. RequireJS has a few tools to deal with them: require-specific errbacks, a paths array config, and a global requirejs. onError. The error object passed to errbacks and the global requirejs. onError function will usually contain two custom properties: requireType . A string value with a general classification, like timeout, nodefine, scripterror. requireModules . an array of module namesURLs that timed out. If you get an error with a requireModules, it probably means other modules that depend on the modules in that requireModules array are not defined. Catching load failures in IE sect 4.6.1 Internet Explorer has a set of problems that make it difficult to detect load failures for errbackspaths fallbacks: script. onerror does not work in IE 6-8. There is no way to know if loading a script generates a 404, worse, it triggers the onreadystatechange with a complete state even in a 404 case. script. onerror does work in IE 9, but it has a bug where it does not fire script. onload event handlers right after execution of script, so it cannot support the standard method of allowing anonymous AMD modules. So script. onreadystatechange is still used. However, onreadystatechange fires with a complete state before the script. onerror function fires. So it is very difficult with IE to allow both anonymous AMD modules, which are a core benefit of AMD modules, and reliable detect errors. However, if you are in a project that you know uses define() to declare all of its modules, or it uses the shim config to specify string exports for anything that does not use define(), then if you set the enforceDefine config value to true, the loader can confirm if a script load by checking for the define() call or the existence of the shims exports global value. So if you want to support Internet Explorer, catch load errors, and have modular code either through direct define() calls or shim config, always set enforceDefine to be true. See the next section for an example. HINWEIS . If you do set enforceDefine: true, and you use data-main to load your main JS module, then that main JS module must call define() instead of require() to load the code it needs. The main JS module can still call requirerequirejs to set config values, but for loading modules it should use define(). If you then also use almond to build your code without require. js, be sure to use the insertRequire build setting to insert a require call for the main module -- that serves the same purpose of the initial require() call that data-main does. require() errbacks sect 4.6.2 Errbacks, when used with requirejs. undef(). will allow you to detect if a module fails to load, undefine that module, reset the config to a another location, then try again. A common use case for this is to use a CDN-hosted version of a library, but if that fails, switch to loading the file locally: With requirejs. undef(), if you later set up a different config and try to load the same module, the loader will still remember which modules needed that dependency and finish loading them when the newly configured module loads. Hinweis . errbacks only work with callback-style require calls, not define() calls. define() is only for declaring modules. paths config fallbacks sect 4.6.3 The above pattern for detecting a load failure, undef()ing a module, modifying paths and reloading is a common enough request that there is also a shorthand for it. The paths config allows array values: This above code will try the CDN location, but if that fails, fall back to the local libjquery. js location. Hinweis . paths fallbacks only work for exact module ID matches. This is different from normal paths config which can apply to any part of a module ID prefix segment. Fallbacks are targeted more for unusual error recovery, not a generic path search path solution, since those are inefficient in the browser. Global requirejs. onError function sect 4.6.4 To detect errors that are not caught by local errbacks, you can override requirejs. onError(): Loader Plugins sect 5 RequireJS supports loader plugins. This is a way to support dependencies that are not plain JS files, but are still important for a script to have loaded before it can do its work. The RequireJS wiki has a list of plugins. This section talks about some specific plugins that are maintained alongside RequireJS: Specify a Text File Dependency sect 5.1 It is nice to build HTML using regular HTML tags, instead of building up DOM structures in script. However, there is no good way to embed HTML in a JavaScript file. The best that can be done is using a string of HTML, but that can be hard to manage, particularly for multi-line HTML. RequireJS has a plugin, text. js, that can help with this issue. It will automatically be loaded if the text prefix is used for a dependency. See the text. js README for more information. Page Load Event SupportDOM Ready sect 5.2 It is possible when using RequireJS to load scripts quickly enough that they complete before the DOM is ready. Any work that tries to interact with the DOM should wait for the DOM to be ready. For modern browsers, this is done by waiting for the DOMContentLoaded event. However, not all browsers in use support DOMContentLoaded. The domReady module implements a cross-browser method to determine when the DOM is ready. Download the module and use it in your project like so: Since DOM ready is a common application need, ideally the nested functions in the API above could be avoided. The domReady module also implements the Loader Plugin API. so you can use the loader plugin syntax (notice the in the domReady dependency) to force the require() callback function to wait for the DOM to be ready before executing. will return the current document when used as a loader plugin: Note: If the document takes a while to load (maybe it is a very large document, or has HTML script tags loading large JS files that block DOM completion until they are done), using domReady as a loader plugin may result in a RequireJS timeout error. If this is a problem either increase the waitSeconds configuration, or just use domReady as a module and call domReady() inside the require() callback. Define an I18N Bundle sect 5.3 Once your web app gets to a certain size and popularity, localizing the strings in the interface and providing other locale-specific information becomes more useful. However, it can be cumbersome to work out a scheme that scales well for supporting multiple locales. RequireJS allows you to set up a basic module that has localized information without forcing you to provide all locale-specific information up front. It can be added over time, and only stringsvalues that change between locales can be defined in the locale-specific file. i18n bundle support is provided by the i18n. js plugin. It is automatically loaded when a module or dependency specifies the i18n prefix (more info below). Download the plugin and put it in the same directory as your apps main JS file. To define a bundle, put it in a directory called nls -- the i18n plugin assumes a module name with nls in it indicates an i18n bundle. The nls marker in the name tells the i18n plugin where to expect the locale directories (they should be immediate children of the nls directory). If you wanted to provide a bundle of color names in your my set of modules, create the directory structure like so: The contents of that file should look like so: An object literal with a property of root defines this module. That is all you have to do to set the stage for later localization work. You can then use the above module in another module, say, in a mylamps. js file: The mylamps module has one property called testMessage that uses colors. red to show the localized value for the color red. Later, when you want to add a specific translation to a file, say for the fr-fr locale, change mynlscolors to look like so: Then define a file at mynlsfr-frcolors. js that has the following contents: RequireJS will use the browsers navigator. languages, navigator. language or navigator. userLanguage property to determine what locale values to use for mynlscolors, so your app does not have to change. If you prefer to set the locale, you can use the module config to pass the locale to the plugin: Note that RequireJS will always use a lowercase version of the locale, to avoid case issues, so all of the directories and files on disk for i18n bundles should use lowercase locales. RequireJS is also smart enough to pick the right locale bundle, the one that most closely matches the ones provided by mynlscolors. For instance, if the locale is en-us, then the root bundle will be used. If the locale is fr-fr-paris then the fr-fr bundle will be used. RequireJS also combines bundles together, so for instance, if the french bundle was defined like so (omitting a value for red): Then the value for red in root will be used. This works for all locale pieces. If all the bundles listed below were defined, then RequireJS will use the values in the following priority order (the one at the top takes the most precedence): mynlsfr-fr-pariscolors. js mynlsfr-frcolors. js mynlsfrcolors. js mynlscolors. js If you prefer to not include the root bundle in the top level module, you can define it like a normal locale bundle. In that case, the top level module would look like: and the root bundle would look like:
Comments
Post a Comment