2015-10-25 15 views
12

Ich verwende Requirejs in einem großen Projekt. Dieses Projekt wird demnächst auf eckig2 umgestellt.Kann system.js ersetzen require.js

Angular2 verwendet system.js, also denke ich auch an system.js zu wechseln. Sollte ich in der Lage sein, den Verweis auf die requirjs-Bibliothek zu entfernen und stattdessen system.js einzuschließen und zu erwarten, dass es funktioniert, oder gibt es etwas, das ich hier nicht verstehe?

Ich habe versucht, indem Sie nur die require.js-Datei entfernen und die system.js-Datei stattdessen hinzufügen, aber ich bekomme Fehlermeldungen sagen, definieren ist nicht definiert. Können Sie helfen? Benötige ich require.js zusätzlich zu system.js?

+0

Angular Hat 2.0 verwenden noch SystemJS oder ist es auch kompatibel mit Webpack? –

+2

Es ist kompatibel mit beiden – rgullhaug

Antwort

8

Ich habe gerade auch auf system.js gewechselt. Sie müssen Ihre require.js durch system.js ersetzen und ein einfaches Skript-Tag hinzufügen. So sollte es so aussehen:

<script src="~/lib/system.js/dist/system.js" type="text/javascript"></script> 
<script> 
    // set our baseURL reference path 
    System.config({ 
     baseURL: '/app' 
    }); 
    System.import('startup.js'); 
</script> 
+0

Und Sie haben es funktioniert, ohne etwas in den vorhandenen Dateien, die requirejs von zuvor verwendet ändert? – rgullhaug

+0

Ja, welche Version von system.js benutzt du? – Rem

+4

Ich habe es funktioniert. Das Problem war, dass die Funktion define und die Funktion require im globalen Bereich nicht verfügbar waren. Ich musste das so machen: window.define = System.amdDefine; window.require = window.requirejs = System.amdRequire; – rgullhaug

3

zusätzlich zu obigen Schritte

gesetzt

System.defaultJSExtensions = true;

standardmäßig systemjs ist das Hinzufügen von nicht-Erweiterung .js

Verwandte Themen