Multi-Projekt-Build und dynamisches Laden von Modulen mit dem Webpack

Ich habe eine potenziell große Angular 2-Anwendung, die wir in mehrere Teile aufteilen werden (sie kann als Bündel in der WebPack-Terminologie betrachtet werden). Darüber hinaus werden wir sie separat erstellen und bereitstellen. Damit können verschiedene Teile der Anwendung dynamisch von der Hauptanwendung geladen werden (nicht innerhalb derselben Webanwendung - innerhalb mehrerer ausgeführter Dienste, die sich auf verschiedenen physischen Hosts befinden können).

Webpack bündelt ziemlich schnell und gut. Aber wie ich aus der Ausgabe weiß, wird ein kompliziertes internes Format verwendet (unter Verwendung von Modulnummern, die den tatsächlichen Pfaden / Namen zugeordnet sind). Das Aufteilen von Code geschieht ebenfalls mit etwas Magie, indem die Modul-IDs Chunk-Namen zugeordnet werden, die dann dynamisch geladen werden können.

Die Probleme hier mit dem Webpack sehe ich:

Wenn es Zahlen zum Bauen verwendet, kann ich nicht einfach separate Teile bauen, die einige Module wiederverwenden, da die Modulnummern in Konflikt geraten können. Ich kenne recordsPath, aber es ist wie ein Hack innerhalb eines Multiprojektsystems (wie in diesem Fall muss ich die Datensätze für das gesamte System unterstützen und pflegen).Ich kann kein externes Modul mit dem Webpack dynamisch laden / importieren (was ich brauche, damit es so funktioniert, wie es in System.js - System.import ('http: // localhost: 9900 / data / index.js') oder sowas. Dies funktioniert im Webpack eigentlich nicht. Ich kann dies durch Aufteilen von Code emulieren, aber das bedeutet, dass nur ein Teil des vorhandenen (nicht externen) Codes abgetrennt wird und dies auch nicht für externe Anwendungen möglich ist.Ich kann die gemeinsamen Module nicht einfach in verschiedenen Projekten wiederverwenden. Zum Beispiel. Ich kann Modul 'A' im Hauptprojekt haben und kann Projekte p1 und p2 haben, die 'A' importieren müssen. Ich könnte 'A' als extern definieren, aber es kann einfach ein kleiner Dienst aus der Hauptanwendung sein.

So eine Idee, ob es mit webpack1 / 2 möglich ist, oder sollte ich mir Tools wie jspm, System.js, browserify usw. ansehen? Ich mag die Art und Weise, wie Webpack seine Arbeit erledigt (Konfiguration ist flexibel, funktioniert schnell und kann viele Dinge bündeln), aber diese Probleme machen einige Komplikationen für solche Anwendungsfäll

Danke im Voraus

Antworten auf die Frage(0)

Ihre Antwort auf die Frage