2017-06-14 1 views
0

ich einige Dateien haben, wie,RequireJS Map Konfiguration mehrerer Dateien

test/test1, 
test/test2, 
test/test3 

und ich will dort Weg zu

newtest/test1, 
newtest/test2, 
newtest/test3 

so benennen, dass, wenn wir versuchen, die oben angegebenen Datei benötigen, dann es wird auf einen neuen Weg zeigen.

In benötigen, 00.59 Mapping vorhanden ist, aber nicht sicher, ob so etwas wie dies erreichbar ist,

require.map = { 
    "test/*": "newtest/*", 
} 

Jede Hilfe :)

+0

Sind Sie dagegen, nur die Anforderungen in Ihren Dateien umzubenennen, vielleicht mit Regex von Atom oder Ihrem Texteditor der Wahl? – user2662833

+0

Das Umbenennen ist nicht möglich, da es andere Bibliotheken gibt, die den angegebenen Pfad verwenden und wir diese nicht ändern wollen. Eher ein komplexeres Szenario in meinem Fall, also müssen Sie einen Weg mit Mapping herausfinden. –

Antwort

0

Die map Konfigurationsoption unterstützt Präfixe Mapping-Modul. Hier ein Beispiel:

require.config({ 
    map: { 
    "*": { 
     "foo": "bar" 
    } 
    } 
}); 

define("bar/x", function() { 
    return "bar/x"; 
}) 

require(["foo/x"], console.log); 

Der letzte require Aufruf, die foo/x zu laden versucht werden bar/x laden.

Dies ist so gut wie es für die Mustererkennung mit map. RequireJS unterstützt das Einfügen von beliebigen Mustern nicht. Die Verwendung von "test/*": "newtest/*" würde nicht funktionieren. Die "*" I in map ist kein Muster. Es ist ein hartcodierter Wert, der "in allen Modulen" bedeutet, und passiert, um wie ein glob-Muster auszusehen. So map oben bedeutet "in allen Modulen, wenn foo erforderlich ist, laden bar stattdessen".

+0

Das bedeutet, ich muss jede Datei einzeln zuordnen. –