2013-03-27 36 views
8

RequireJS consente di caricare le librerie da un CDN. Nel caso in cui la CDN non funzioni, si può anche avere un'opzione di backup in cui il file può essere localizzato altrove (in questo caso, assumiamo che si trovi localmente). Questo è tutto fatto nell'oggetto path. Ad esempio, per caricare JQuery da una CDN e poi a livello locale se il CDN è giù, fare questo:Utilizzo di un CDN con Ottimizzatore RequireJS

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

L'esempio riportato sopra dovrebbe prima cercare trovare query dal CDN, poi da lib/jquery.

Domanda Ho l'impressione che quando si utilizza lo Strumento per ottimizzare requirejs, le cose si minified e offuscato in un unico file di grandi dimensioni. Come funziona l'opzione di backup nell'ottimizzatore? Sarebbe incluso nel file minificato? Se è così, non c'è assolutamente alcun vantaggio nell'usare una CDN. Ma se l'opzione di backup non è inclusa nella versione ottimizzata, allora come far fronte al codice ottimizzato se il CDN si interrompe?

Grazie in anticipo per le risposte.

risposta

3

È possibile avere impostazioni di configurazione diverse per il sito normale rispetto a quello che si utilizza per alimentare l'ottimizzatore, quindi in questo caso si utilizzerà una configurazione "vuota" nella versione di ottimizzazione in modo che non includa jQuery nel combinato/versione minified:

paths: { 
    jquery: "empty:" 
} 

vedere la documentazione per ulteriori dettagli: http://requirejs.org/docs/optimization.html#empty

+2

Sì, lo so questo, ma allora che cosa è l'uso di che "opzione di backup". Voglio dire, questo codice verrà utilizzato in produzione molto più che in test. Mi sembra che l'opzione Backup sia completamente inutile perché chi utilizza JavaScript non ottimizzato. –

+0

Se non ottimizzato intendi non combinato con altri moduli, allora sì hai un buon punto. Ma non c'è nulla che dice che il tuo file di backup non può essere minimizzato. Inoltre, ti aspetteresti che quando si utilizza un CDN verrà caricato con successo una percentuale elevata del tempo. – explunit

+2

Grazie, hai risposto alla mia domanda in questo ultimo commento. Per non ottimizzato, intendo non combinato. Non ho idea del perché questa opzione esiste anche. Sarebbe molto bello se questa opzione di backup fosse caricata in modo asincrono se la CDN fallisse, ma potrebbe essere difficile da ottenere con AMD. James Burke, se stai leggendo questo (quali sono le possibilità!), Per favore puoi pensarci. –

Problemi correlati