Angular2 Lazy Lademodule: Wie erstelle ich ein Build Package mit SystemJS Builder?

8

Ich verwende Angular2 und SystemJS, um eine Webanwendung zu erstellen. Ich habe einige Module in meiner App und in der Router-Konfiguration verwende ich Lazy Loading, um sie zu öffnen.

Hier ist eine Routing-Datei meiner App, die zwei Module lädt:

%Vor%

Ich benutze Gulp zum Erstellen von Aufgaben für den Entwicklungsserver und für die Produktionserstellung. Für den Build verwende ich den SystemJS Builder, der die verkleinerte JS-Datei für die gesamte App erstellt.

%Vor%

Aber ... wenn ich versuche, einen Server auf dem Build-Paket auszuführen, funktioniert die App nicht, wenn versucht wird, die Lazy-Loaded-Module auszuführen. Es gibt mir den folgenden Fehler:

%Vor%

Hier ist meine systemjs.config.js Datei:

%Vor%

BEARBEITEN:

Wie auf der Seite SystemJs Builder mit statischen Paketen beschrieben, benötigen wir keine SystemJs, um Module zu laden. Tatsächlich erstelle ich ein statisches Bündel (mit buildStatic , anstatt bundle ), aber da ich SystemJs ausschließe, scheint es, dass es keine anderen Möglichkeiten gibt, Module lazy zu laden. Wie erstellt man also einen Produktions-Build mit bundle und verwendet dann Lazy-Lademodule, aber ohne SystemJS (ohne systemjs.config.js -Datei im dist -Ordner)? Ich sehe WebPack kann es tun ...

    
smartmouse 04.11.2016, 12:32
quelle

2 Antworten

1

Sehen Sie, ob Sie system.js beschwichtigen können, indem Sie eine Karte für das erforderliche Modul bereitstellen. Wenn also system.js den Pfad modules / FIRST-SECTION / first-section.module findet, sagen Sie es: Hey, könnten Sie diesen Pfad zu modules / FIRST-SECTION / first- section.module.js ohne in der Konsole zu schreien. Hoffe, das hilft.

%Vor%     
Abide Masaraure 07.11.2016 01:42
quelle
1

Damit Pakete für Ihre App funktionieren, müssen Sie die Eigenschaft "bundles" für systemjs definieren, etwa so:

%Vor%     
Aran Dekar 08.11.2016 05:23
quelle