Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[v6] Drop Module Federation v1 support and migrate fully to v2

Abierto
#1,420 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
react-native, typescript, webpack

Línea de trabajo

Comienza con la actualización de dependencias necesaria en packages/repack e inspecciona ModuleFederationPluginV2.ts, el directorio FederationRuntimePlugins y los archivos de plugins, utilidades, aplicaciones, pruebas y documentación indicados. Ejecuta las pruebas unitarias y de integración relevantes, incluidas ModuleFederationPluginV2.test.ts y NativeEntryPlugin.test.ts. Se considera terminado cuando se haya eliminado la compatibilidad con V1, V2 sea el valor predeterminado y el alias conservado, las dependencias y las pruebas coincidan con el rango compatible y las aplicaciones y la documentación se hayan migrado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area:repack type:feature

Motivation

Re.Pack currently ships two Module Federation implementations side by side: ModuleFederationPluginV1 (built on webpack's/Rspack's native container API) and ModuleFederationPluginV2 (built on @module-federation/enhanced). The generic Repack.plugins.ModuleFederationPlugin export still resolves to V1 and logs a notice on every build stating that the next major will repoint it at V2. v6 is that major.

MF v1 is no longer being iterated on upstream — all Module Federation development happens in the @module-federation/* v2 packages. Carrying both implementations doubles the plugin surface, the documentation, the tester apps and the test matrix, and it blocks a set of cleanups that only make sense once V1 is gone.

Part of #1414 (Roadmap to V6), which already lists MF v2+ as a minimum-version target and "updated docs for MF v2" as a deliverable.

Breaking changes

  • Repack.plugins.ModuleFederationPlugin starts resolving to the V2 implementation. Configs written against the V1 option shape need migrating.
  • ModuleFederationPluginV1 is removed.
  • @module-federation/enhanced effectively becomes a required peer dependency instead of an optional one. V1 needed no extra install; V2 hard-fails without it (ensureModuleFederationPackageInstalled in packages/repack/src/plugins/ModuleFederationPluginV2.ts).
  • The build-side Federated namespace (createRemote, SHARED_REACT, SHARED_REACT_NATIVE in packages/repack/src/utils/federated.ts) is removed — it is only consumed by V1.

Scope

Core
  • Repoint ModuleFederationPlugin at the V2 implementation and drop the beforeCompile deprecation notice in packages/repack/src/plugins/ModuleFederationPlugin.ts
  • Keep ModuleFederationPluginV2 exported as an alias so existing v5 configs continue to work unchanged
  • Remove packages/repack/src/plugins/ModuleFederationPluginV1.ts, its export from plugins/index.ts, and its unit tests
  • Remove packages/repack/src/utils/federated.ts and its re-export from utils/index.ts
  • Decide the fate of the client-side Federated namespace (importModule, createURLResolver in packages/repack/src/modules/ScriptManager/federated.ts) — superseded by the MF v2 resolver runtime plugin, but it is public API and may be used independently of the build plugin
  • Move @module-federation/enhanced out of peerDependenciesMeta.optional and raise the peer floor to a 2.x range
Apps and tests
  • Migrate apps/tester-federation to V2, or fold it into apps/tester-federation-v2 and delete it — once both are on V2 they largely duplicate each other, so consolidating into a single tester-federation app is probably the better outcome
  • Drop the with Module Federation v1 case in tests/integration/src/plugins/NativeEntryPlugin.test.ts
  • Update the MF version matrix in the same file (currently 0.15.0 / 0.21.0 / 2.0.1) to match the new supported range
Docs
  • Remove website/src/latest/api/plugins/module-federation-v1.mdx and rename module-federation-v2.mdx to module-federation.mdx
  • Rewrite website/src/latest/docs/features/module-federation.md, which currently just redirects readers to the Re.Pack 4.x docs with a caveat that they are out of date
  • Add an MF v1 → v2 section to the v5 → v6 migration guide

Prerequisite

This depends on first bumping @module-federation/enhanced in packages/repack from 0.8.9 to 2.x. That bump is a small standalone change but does have breakage of its own:

  • FederationRuntimePlugin was renamed to ModuleFederationRuntimePlugin and FederationHost to ModuleFederation, affecting all three runtime plugins in packages/repack/src/modules/FederationRuntimePlugins/
  • runtimePlugins widened to (string | [string, Record<string, unknown>])[], so adaptRuntimePlugins needs to handle the tuple form — which also unlocks passing options to runtime plugins
  • the jest.mock('@module-federation/enhanced/rspack') automock in ModuleFederationPluginV2.test.ts no longer produces a constructor and needs an explicit factory

As a bonus, moving to @module-federation/enhanced >= 2.4.0 also releases the webpack hold at ~5.105.0 in pnpm-workspace.yaml, which exists solely because older MF versions depend on a webpack internal removed in 5.106.

Lenguaje dominante
TypeScript
Estrellas
1.9k
Forks
168
Merge medio
2 d 4 h
PR fusionados (30 d)
13

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de callstack/repack

Todos los issues de callstack/repack

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.