create-mfe-kit
Version:
CLI to scaffold Micro Frontend apps using Module Federation
61 lines (54 loc) • 1.74 kB
JSX
import React, { Suspense } from "react";
import "./App.css";
const App1 = React.lazy(() => import("app1/App"));
const STORAGE_KEY = "mfe-counter-value";
const App = () => {
const update = (delta) => {
const current = parseInt(localStorage.getItem(STORAGE_KEY)) || 0;
localStorage.setItem(STORAGE_KEY, current + delta);
window.dispatchEvent(new Event("storage")); // update in same tab
};
return (
<div className="container">
<div className="controls">
<h2>Counter Controls (Container)</h2>
<button onClick={() => update(1)}>Increment</button>
<button onClick={() => update(-1)}>Decrement</button>
<Suspense fallback={<div className="loading">Loading MFE1...</div>}>
<App1 />
</Suspense>
</div>
<div className="instructions">
<p>
This project is scaffolded using <code>create-mfe-kit</code> a CLI
tool for rapidly bootstrapping microfrontend apps using Webpack Module
Federation.
</p>
<p>
<strong>container</strong>: The host application that loads remote
apps.
</p>
<p>
<strong>app1</strong>: A remote MFE exposed via{" "}
<code>ModuleFederationPlugin</code>.
</p>
<h2>How to Add a New Remote App</h2>
<ol>
<li>
Open a terminal and run:
<pre>
<code>npx create-mfe-kit add *app name*</code>
</pre>
</li>
<li>
Enter the app name (e.g., <code>app2</code>)
</li>
<li>
Select a port (e.g., <code>3002</code>)
</li>
</ol>
</div>
</div>
);
};
export default App;