2013-03-27 3 views
8

RequireJS ermöglicht das Laden von Bibliotheken aus einem CDN. Falls das CDN nicht verfügbar ist, kann man auch eine Backup-Option haben, bei der die Datei irgendwo anders lokalisiert werden kann (in diesem Fall nehmen wir an, dass sie sich lokal befindet). Dies geschieht alles im Pfadobjekt. Zum Beispiel, um JQuery von einem CDN zu laden und dann lokal, wenn das CDN unten ist, dies zu tun:Verwenden eines CDN mit RequireJS-Optimierer

paths : { 
    jquery : [ 
     'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min', 
     'lib/jquery', 
    ]} 

Das obige Beispiel würde versuchen, erste Abfrage aus dem CDN findet, dann von lib/jquery.

Frage ich unter dem Eindruck bin, dass, wenn der requirejs optimiser verwenden, Dinge in eine großen Datei minimiert und verschleierten erhalten. Wie funktioniert die Backup-Option im Optimierer? Wäre es in der minimierten Datei enthalten? Wenn dem so ist, dann ist es absolut kein Vorteil, ein CDN zu verwenden. Aber wenn die Backup-Option nicht in der optimierten Version enthalten ist, wie wird optimierter Code dann zurechtkommen, wenn der CDN ausfällt?

Vielen Dank im Voraus für die Antworten.

Antwort

3

Sie können verschiedene Konfigurationseinstellungen für Ihren regulären Standort haben, im Gegensatz zu dem, was Sie verwenden, um den Optimierer zu füttern. In diesem Fall würden Sie eine "leere" Konfiguration in Ihrer Optimiererversion verwenden, so dass jQuery nicht in der kombiniert/minimierte Version:

paths: { 
    jquery: "empty:" 
} 

finden Sie in der Dokumentation für weitere Details: http://requirejs.org/docs/optimization.html#empty

+2

Ja, ich weiß darüber, aber was ist dann die Verwendung dieser "Backup-Option". Ich meine, dieser Code wird in der Produktion weit mehr als im Test verwendet werden. Es scheint mir, dass die Backup-Option absolut nutzlos ist, weil sie nicht optimiertes JavaScript verwendet. –

+0

Wenn du nicht optimiert bist, meinst du nicht mit anderen Modulen kombiniert, dann hast du ja einen guten Punkt. Aber es gibt nichts, was sagt, dass Ihre Backup-Datei nicht minimiert werden kann. Außerdem würden Sie erwarten, dass bei Verwendung eines CDN ein hoher Prozentsatz der Zeit erfolgreich geladen wird. – explunit

+2

Danke, Sie haben meine Frage in diesem letzten Kommentar beantwortet. Mit unoptimiert meine ich nicht kombiniert. Ich habe keine Ahnung, warum diese Option überhaupt existiert. Es wäre sehr cool, wenn diese Backup-Option asynchron geladen würde, wenn der CDN fehlgeschlagen wäre, aber das könnte mit AMD schwer zu erreichen sein. James Burke, wenn du das liest (was sind die Chancen!), Kannst du bitte darüber nachdenken. –