2016-02-15 41 views
8

Chciałbym przeprowadzić migrację do SystemJS z requirejs, ale nie udało mi się znaleźć rozwiązania, ponieważ requirejs ma do wersji modułowej. Na przykład w produkcji (strony ASP.NET) Mam zestaw RequireJS takie jak ten:Wersjonowanie SystemJS do zarządzania produkcją i pamięcią podręczną (requirejs urlArgs alternatywa)

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

To gwarantuje, że plik zostanie załadowany, gdy projekt jest publikowane w środowisku produkcyjnym i utrzymywane w ten sposób, dopóki nie jest ponownie załadowany.

Jednak nie znalazłem dla tego rozwiązania dla SystemJS (ponieważ SystemJS zarządza więcej typów modułów, chciałbym do niego przejść).

Czy ktoś użył SystemJS w produkcji i miał ten sam problem, czy znasz parametr "urlArgs" (lub wtyczkę) w SystemJS?

+0

naprawdę nie rozumiem cię pytanie? --- P.S. Używam tylko requireJS i buforowanie wszystkiego do 365 dni. Wszystko działa dobrze, dlaczego potrzebujesz systemJS w pierwszej kolejności? –

+0

Edytowałem post, aby dowiedzieć się, czy ktoś znalazł parametr/wtyczkę, która ma takie samo zachowanie urlArgs w RequireJS. SystemJS pozwala nam używać wielu typów definicji modułów, więc uważam, że jest bardziej "przyszłościowy". –

+0

Teraz rozumiem, wygląda na to, że znalazłeś tu swoją odpowiedź. http://stackoverflow.com/questions/33332911/can-system-js-replace-require-js –

Odpowiedz

7

Krótka historia: pojawiły się problemy dotyczące github z SystemJS o cache bust. Ale rzeczy nie są jeszcze oficjalnie zaimplementowane. W tej chwili nie ma hak zwyczaj, który może być łatwo dodana

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 fix literówkę

+2

W rzeczywistości twórca SystemJS powiedział, że nie zostanie on wdrożony w systemie SystemJS, mówiąc, że "buforowanie powinno być obsługiwane na warstwach serwera, a nie w warstwa programu ładującego ". –

+0

Nie działa od 0.20: https://github.com/systemjs/systemjs/issues/1616 –