2016-02-15 13 views
8

Mi piacerebbe migrare a SystemJS da requirejs tuttavia non riesco a trovare una soluzione come requirejs per il versioning del modulo. RequireJS Per esempio nella produzione (sito web ASP.Net) io vi ho posti come questo:Versioning SystemJS per la produzione e la gestione della cache (requirejs urlArgs alternativa)

require.config({ 
      baseUrl: "@Url.Content("~/Scripts/")", 
      urlArgs: "[email protected](File.GetLastWriteTime(ViewContext.Controller.GetType().Assembly.Location).ToBinary().ToString() + typeof(Foundation.MvcApplication).Assembly.GetName().Version)", 
      ... 
}); 

Garantisce che il file verrà ricaricato una volta che il progetto viene ripubblicato in ambiente di produzione, e mantenuti così fino a quando non è ricaricato.

Tuttavia, non ho trovato alcuna soluzione per questo per SystemJS (come SystemJS gestire più tipi di moduli, mi piacerebbe migrare ad esso).

Qualcuno ha usato SystemJS in produzione e ha avuto lo stesso problema, conosci un parametro "urlArgs" (o plugin) in SystemJS?

+0

Io non capisco si mette in discussione? --- P.S. Sto usando solo requireJS e memorizzando nella cache tutto fino a 365 giorni. Tutto funziona bene, perché hai bisogno di systemJS in primo luogo? –

+0

Ho modificato il post, è solo per sapere se qualcuno ha trovato un parametro/plugin per avere lo stesso comportamento urlArgs di RequireJS. SystemJS ci consente di utilizzare molti tipi di definizione del modulo, quindi lo trovo più "a prova di futuro". –

+0

Capisco ora, sembra che tu abbia trovato la tua risposta qui. http://stackoverflow.com/questions/33332911/can-system-js-replace-require-js –

risposta

7

Per farla breve: c'erano problemi su github di SystemJS su cache bust. Ma la cosa non è ancora ufficialmente implementata. Al momento non è un gancio personalizzato, che può essere facilmente aggiunto

var buildNumber = 1234, // made your own build number 
    systemLocate = System.locate; 
System.locate = function(load) { 
    return Promise.resolve(systemLocate.call(this, load)).then(function(address) { 
    return address + '?build='+buildNumber; 
    }); 
} 

EDIT correzione errore di battitura

+2

In effetti il ​​produttore di SystemJS ha detto che non sarebbe stato implementato su SystemJS, dicendo "il caching dovrebbe essere gestito ai livelli del server, non al livello di caricamento ". –

+0

Non funziona da 0.20: https://github.com/systemjs/systemjs/issues/1616 –

Problemi correlati