Merge pull request #22429 from Hyperkid123/bep-0002-dynamic-frontend-experiments

bep: 0002 add module federation build tooling experiment
This commit is contained in:
Patrik Oldsberg
2024-01-22 18:08:17 +01:00
committed by GitHub
2 changed files with 9 additions and 2 deletions
@@ -330,6 +330,7 @@ Rollbar
Rollup
routable
Routable
Rspack
rst
rsync
ruleset
+8 -2
View File
@@ -143,10 +143,16 @@ Plugin discovery is a pre-requisite for Plugin registry. This should be responsi
### Module federation implementation experiments
> NOTE Share outcome of testing mixing multiple tools for module federation.
Test should consist of trying to run permutations of webpack/Rspack/vite based shell apps/plugins and discover if we can freely choose any tool, or if we should restrict the tooling to just a subset of the available options.
The outcome of initial testing is positive and it is possible to mix and match different build tools and consume different remote modules in a single shell application.
The experimental code can be found in [this repository](https://github.com/scalprum/mf-mixing-experiments).
**The testing so far was done only on very simple modules**. Although core React features are working (Context API and hooks), more testings needs to be done in order to declare this approach 100% reliable.
So far a lot of custom code needs to be written to bridge Webpack, Rspack, @module-federation/enhanced with Vite. The first three are compatible out of the box, but Vite requires extra bridge to be able to consume/provide modules with/to other builds.
### Plugin manifest
Each plugin should have a manifest file with important metadata. This metadata is used to load the remote assets to browser. The plugin manifest should be part of a build output.