Ich suche nach einer Lösung für eine seltsame Situation. Werfen wir einen kurzen Blick auf das angular2-seed-Projekt, damit ich es besser erklären kann: Ссылка .
In diesem Projekt haben wir drei isolierte Module - ungefähr, zuhause, geteilt. Was ich suche, ist eine Möglichkeit, die Entwicklung von diesen zu isolieren, so dass wir letztendlich jedes Stück unabhängig voneinander veröffentlichen können. Angenommen, Team A arbeitet an der About-Sektion und Team B arbeitet zu Hause. Die Arbeit ist für jeden abgeschlossen, und wir sind bereit zu veröffentlichen, aber wir wissen, dass der About-Bereich eine kritische Funktionalität fehlt, aber wir wollen dennoch die Änderung in den Home-Bereich freigeben. Was wir suchen, ist ein Weg, dies zu erreichen.
Hier sind einige Lösungen bereits erforscht, aber ich bin nicht wirklich glücklich mit:
Orchestration:
Lassen Sie jedes Team eine Komponentenbibliothek (NPM) erstellen und ziehen Sie diese in eine einzelne Angular 2-Anwendung. Auf diese Weise können die Teams mithilfe von Microservices-Prinzipien entwickeln, aber Sie können einen SPA -Monolith bereitstellen reduziert die Komplexität.
Große Komponentenbibliotheken sollten mehrere Bundles und Module enthalten, so dass Sie selektiv auswählen können, was Sie abrufen.
Kommunikation zwischen Microservices:
Bei Bedarf können die Komponentenbibliotheken über einen Back-End-Nachrichtenbus kommunizieren.
Wenn eine direkte clientseitige Integration zwischen den Komponentenbibliotheken erforderlich ist, benötigen Sie eine dritte Komponentenbibliothek, von der about
und home
abhängen, die einen leichtgewichtigen injizierbaren Nachrichten- / Ereignisdienst enthält. Sie können diesen Dienst mithilfe von RxJS-Themen implementieren.
Ein Javascript Meta-Framework könnte für Sie arbeiten. Hier dieses interessante Projekt Es basiert auf React-Komponentenlebenszyklen, indem Lebenszyklen auf ganze Anwendungen angewendet werden.
Einige Funktionen:
Ich hoffe, es hilft Ihnen, in die richtige Richtung zu gehen.
Tags und Links javascript angular