Versionsstyring, deployment og orkestrering
Deploy remotes uafhængigt med semantisk versionsstyring, håndtér konflikter mellem delte biblioteker, og koordinér udgivelser.
Versionsstyring, deployment og orkestrering er en gratis React Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i React Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. React Academy-kurset indeholder 4 lektioner i alt.
Uafhængig udrulning: kerneværdien
Module Federations primære værdi er uafhængig udrulning: Et team kan opdatere, teste og udrulle sit remote uden at koordinere med host-teams eller udløse genudrulninger af hosten. Hosten registrerer automatisk ændringerne, næste gang den indlæser remoteEntry.js fra remote'ets URL.
Versionsstyring af remote-URL'er
I stedet for at levere remoteEntry.js på en fast URL (som ændres ved hver udrulning) kan du inkludere en indholdshash i URL'en: remoteEntry.[hash].js. Det gør hver udrulning uforanderlig — gamle URL'er bliver ved med at virke, og hosten refererer til den nye hash, når den opdateres til den nye udrulning. Uforanderlige URL'er muliggør aggressiv CDN-caching.
Featureflag på infrastrukturniveau
Fordi hosten finder remotes via URL, kan du implementere A/B-tests på infrastrukturniveau: Lever forskellige remoteEntry.js-URL'er til forskellige brugere (med henvisning til forskellige remote-versioner). Det muliggør ægte canary-udrulninger for microfrontends uden featureflaglogik i applikationskoden.
Manifesttilgangen til fleksibel registrering
I stedet for at fastskrive remote-URL'er i Webpack-konfigurationen henter hosten et JSON-manifest ved opstart: GET /federation-manifest.json returnerer { buttonApp: 'https://cdn.example.com/button/remoteEntry.abc123.js' }. Hvis du vil opdatere, hvilken version hosten bruger, skal du opdatere manifestet — ingen genbygning af hosten er nødvendig.
Tilbageførsel via manifestopdatering
Når en remote-udrulning introducerer en regression, er tilbageførsel øjeblikkelig: Opdater federation-manifest.json, så den peger på den tidligere remoteEntry.js-URL. Hosten begynder straks at bruge den gamle version i næste anmodningscyklus. Ingen genbygning af hosten, ingen tilbageførsel af hosten og ingen koordinering er nødvendig.
Webpack Module Federation 2.0
Module Federation 2.0 (pakken @module-federation/enhanced) indeholder betydelige forbedringer: bedre TypeScript-understøttelse med automatisk typegenerering fra manifester for fjernmoduler, en plugin-API til brugerdefineret indlæsningslogik under kørsel samt forbedret administration af delte områder til komplekse scenarier med versionsforhandling.
vite-plugin-federation til Vite
Pakken vite-plugin-federation bringer Module Federation til Vite-baserede projekter med en konfigurations-API, der minder om Webpacks ModuleFederationPlugin. Den er kompatibel med både fjernmoduler i Vite og værter i Webpack (og omvendt), så teams gradvist kan migrere til Vite uden at opgive Module Federation.
Dynamiske fjernmoduler under kørsel
I meget dynamiske arkitekturer kan du konfigurere URL'er til fjernmoduler udelukkende under kørsel: import(remoteRegistry[featureName]), hvor remoteRegistry udfyldes af et API-kald. Det muliggør plugin-lignende arkitekturer, hvor nye mikrofrontends kan tilføjes uden at genopbygge skalapplikationen.
Skalapplikationen som orkestrator
Skalapplikationens primære opgave er orkestrering: Den læser manifestet for fjernmoduler, initialiserer Module Federations kørselstid, registrerer fjernmoduler under navngivne ruter og gengiver det relevante fjernmodul ud fra den aktuelle URL. Skallen er med vilje slank — den ved, hvad der skal indlæses, ikke hvordan det skal gengives.
Overvågning af Module Federation i produktion
Tilføj ydeevneovervågning af indlæsning af fjernmoduler: pak import af fjernmoduler ind i try/catch, så indlæsningsfejl håndteres på en god måde (gengiv en reservegrænseflade, hvis fjernmodulet ikke er tilgængeligt), mål tiden til at hente remoteEntry.js og komponentdele, og send en alarm, hvis indlæsningstiden for fjernmodulet overskrider en grænse (hvilket kan indikere problemer med CDN'et).
Den fulde CI/CD-arbejdsgang
En moden CI/CD-arbejdsgang for Module Federation ser sådan ud: fjernteamet indsender ændringer → CI bygger fjernmodulet → uploader den uforanderlige remoteEntry.[hash].js til et CDN → opdaterer federation-manifest.json → værten henter det nye fjernmodul ved den næste brugeranmodning. Hvert trin er automatiseret, og værtsteamet er aldrig involveret i udrulninger af fjernmoduler.
Strategi for tilbagerulning af Module Federation
Hvad er den hurtigste måde at rulle en fejlbehæftet udrulning af et Module Federation-fjernmodul tilbage på?
Opsummering af lektionen
Module Federation muliggør ægte uafhængig udrulning: fjernmoduler kan udrulles uden at genopbygge værten, og værten opdager automatisk nye versioner. Brug indholdshashede URL'er til fjernmoduler for uforanderlig CDN-caching og et dynamisk manifest til fleksibel versionsstyring og øjeblikkelig tilbagerulning. vite-plugin-federation bringer disse muligheder til Vite, og dynamisk import af fjernmoduler muliggør plugin-lignende arkitekturer. Skallen orkestrerer indlæsningen af fjernmoduler og holder sig med vilje slank.
Lær React med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 88
- Lektioner
- 324
Ofte stillede spørgsmål
Er lektionen “Versionsstyring, deployment og orkestrering” gratis?
Ja — hele teksten til “Versionsstyring, deployment og orkestrering” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af React Academy-kurset, skal du opgradere til CoddyKit PRO. React Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Versionsstyring, deployment og orkestrering”?
Deploy remotes uafhængigt med semantisk versionsstyring, håndtér konflikter mellem delte biblioteker, og koordinér udgivelser. Du øver dig i React Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på React Academy?
Der kræves ingen tidligere erfaring. React Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Versionsstyring, deployment og orkestrering”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne React Academy-lektion?
Ja. Alle React Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Module Federation: Dynamiske runtime-imports
- Konfiguration af host- og remote-React-apps
- Deling af state og routing mellem remotes
- Versionsstyring, deployment og orkestrering