0Pricing
HTML Academy · Lektion

Grundlagen der Module Federation

Verstehen Sie, wie Module Federation die gemeinsame Nutzung in Microfrontends ermöglicht

Grundlagen der Module Federation ist eine kostenlose HTML Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des HTML Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Module Federation?

Module Federation ermöglicht es einer JavaScript-Anwendung, zur Laufzeit Code aus einer anderen, unabhängig bereitgestellten Anwendung zu laden und auszuführen. Das Muster entstand in Webpack 5 und ist inzwischen auch über native Import Maps und Dynamic Import möglich.

Der Anwendungsfall

Große Organisationen teilen Monolithen in mehrere unabhängig bereitgestellte „Micro-Frontends“ auf – einen Shell-Host und mehrere Feature-Anwendungen. Module Federation ermöglicht es der Shell, jedes Feature bei Bedarf zu laden, ohne sie zur Build-Zeit gemeinsam zu bündeln.

Webpack Federation

In Webpack 5 definiert der Host remotes (andere zu konsumierende Apps), während Remotes exposes definieren (was sie anbieten). Die Runtime ruft beim Start ein kleines Manifest von jedem Remote ab und lädt Chunks herunter, sobald der Host sie importiert.

Native Entsprechungen

Ohne Webpack funktioniert dasselbe Prinzip mit Import Maps, die auf entfernte ESM-Bundles zeigen, und mit Dynamic Import zum Laden. Die Import Map des Hosts enthält "feature-cart": "https://cart-team.example.com/entry.js"; import("feature-cart") lädt die zuletzt bereitgestellte Version.

<script type="importmap">
{
  "imports": {
    "feature-cart": "https://cart.example.com/v1/entry.js",
    "feature-checkout": "https://checkout.example.com/v2/entry.js"
  }
}
</script>

Gemeinsame Abhängigkeiten

Ohne Abstimmung würde jedes Remote seine eigene Kopie von React ausliefern. Federation-Tools ermöglichen die Deklaration gemeinsamer Abhängigkeiten – das erste Remote, das React lädt, stellt es allen anderen zur Verfügung. Native Ansätze verwenden Import Maps, um jedes Remote auf dieselbe React-URL zu verweisen.

Unabhängige Bereitstellung

Jedes Team ist für sein Remote verantwortlich und kann es jederzeit bereitstellen. Der Host muss nie neu gebaut werden; beim nächsten Laden der Seite übernimmt er neue Versionen (oder dies geschieht über Cache-Busting). Dadurch werden die Release-Zyklen vollständig voneinander entkoppelt.

Strategien für die Versionierung

Fixieren Sie Remotes auf versionierte URLs (/v1/entry.js, /v2/entry.js), damit ein Upgrade des Hosts bewusst und nicht implizit erfolgt. Einige Teams verwenden über Tools wie JSPM eine Semver-Abstimmung auf Ebene der Import Map.

Abwägungen

Federation bringt zusätzliche Komplexität zur Laufzeit mit sich: mehr Netzwerkanfragen, schwierigeres Debugging über Origins hinweg und das Risiko inkompatibler gemeinsamer Abhängigkeiten. Verwenden Sie es, wenn Sie tatsächlich unabhängige Bereitstellungen benötigen; bei kleineren Projekten ist ein einzelner Build einfacher und schneller.

Fehlerisolierung

Der Absturz eines einzelnen Remotes darf den Host nicht mit herunterreißen. Umschließen Sie dynamische Importe mit Fehlergrenzen (React) oder try/catch (vanilla) und rendern Sie eine Fallback-Oberfläche, wenn ein Remote fehlschlägt. Die Shell bleibt funktionsfähig, selbst wenn ein Feature vorübergehend gestört ist.

Typsicherheit

Für von Remotes exportierte Werte stehen dem Host zur Kompilierzeit keine Typinformationen zur Verfügung. Generieren Sie gemeinsame TypeScript-Typen in einem separaten Paket, das von beiden Seiten verwendet wird, oder nutzen Sie Laufzeitvalidierung (Zod, io-ts) an der Federation-Grenze.

Native Federation vs. Tooling

Native Federation (Import Maps + ESM) ist einfacher und basiert auf Standards, bietet aber nicht Webpacks Koordination gemeinsam genutzter Abhängigkeiten. Wählen Sie Webpack/Module Federation für komplexe Anwendungen mit vielen gemeinsam genutzten Abhängigkeiten und Native Federation für einfachere Micro-Frontend-Setups.

Zukünftige Entwicklung

Das W3C untersucht leistungsfähigere Primitive zum Laden von Modulen, die Native Federation ausbauen würden – einschließlich einer besseren Aushandlung gemeinsam genutzter Abhängigkeiten. Betrachten Sie Import Maps heute als Grundlage und setzen Sie darauf Ihre Federation-Tools auf.

Wissensfrage

Was ist die wichtigste Motivation für den Einsatz von Module Federation in einer großen Anwendung?

Zusammenfassung

Mit Module Federation kann ein Host zur Laufzeit Code aus unabhängig bereitgestellten Remotes laden. Die Tools von Webpack 5 ermöglichen die Aushandlung gemeinsam genutzter Abhängigkeiten; Native Federation verwendet Import Maps und dynamische Importe. Setzen Sie Module Federation für Micro-Frontend-Architekturen mit mehreren Teams ein und akzeptieren Sie die zusätzliche Komplexität als Gegenleistung für unabhängige Bereitstellungen.

Häufig gestellte Fragen

Ist die Lektion „Grundlagen der Module Federation“ kostenlos?

Ja — der vollständige Text von „Grundlagen der Module Federation“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des HTML Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Grundlagen der Module Federation“?

Verstehen Sie, wie Module Federation die gemeinsame Nutzung in Microfrontends ermöglicht Du übst HTML Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um HTML Academy zu starten?

Keine Vorkenntnisse erforderlich. HTML Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Grundlagen der Module Federation“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser HTML Academy-Lektion Code schreiben und ausführen?

Ja. Jede HTML Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. ES-Modul-Skripte: type=module
  2. Import Maps: importmap
  3. Dynamischer Import mit import() in Modulen
  4. Grundlagen der Module Federation
← Zurück zu HTML Academy