{"id":80390,"date":"2024-10-17T00:58:42","date_gmt":"2024-10-16T21:28:42","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/"},"modified":"2024-10-17T00:58:42","modified_gmt":"2024-10-16T21:28:42","slug":"micro-frontend-with-module-federation-in-react-3g4m","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/","title":{"rendered":"Micro Frontend \u0628\u0627 \u0645\u0627\u0698\u0648\u0644 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u062f\u0631 React"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062f\u0631 \u0627\u0635\u0644 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0639\u0645\u0627\u0631\u06cc micro frontend \u0648 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0633\u0627\u062e\u062a \u06cc\u06a9 micro frontend \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u062f\u0631 React \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>  Micro frontend \u0686\u06cc\u0633\u062a\u061f<\/p>\n<p>Micro frontend \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0627\u0645\u0644 \u062a\u062c\u0632\u06cc\u0647 \u06cc\u06a9 \u0628\u062e\u0634 \u0628\u0632\u0631\u06af \u062c\u0644\u0648\u06cc\u06cc \u0628\u0647 \u0642\u0637\u0639\u0627\u062a \u06a9\u0648\u0686\u06a9\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u06a9\u0646\u062a\u0631\u0644\u200c\u062a\u0631 \u0627\u0633\u062a. \u0647\u0631 \u0642\u0637\u0639\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u0633\u062a\u0642\u0644 \u06cc\u0627 microfrontend \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u062a\u0648\u0633\u0639\u0647 \u06cc\u0627\u0628\u062f\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0634\u0648\u062f \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u0627\u0628\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u062a\u06cc\u0645 \u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0648 \u0645\u0633\u062a\u0642\u0644 \u062a\u0631 \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0644\u06cc \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u0646\u062f.<\/p>\n<p>  \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0686\u06cc\u0633\u062a\u061f<\/p>\n<p>Module Federation \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0634\u062a\u0646 \u06a9\u062f \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u062e\u062a\u0644\u0641 \u06cc\u0627 \u0645\u06cc\u06a9\u0631\u0648 \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u062f\u0627\u0645\u0646\u0647 \u062a\u0648\u0632\u06cc\u0639 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0632\u0631\u06af \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<p>  \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/p>\n<p>Module Federation \u0633\u06cc\u0633\u062a\u0645\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0627\u0632 \u0628\u062e\u0634 \u0647\u0627\u06cc\u06cc \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u06cc\u06af\u0631 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u06a9\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0622\u0646 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0627 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u062f \u0631\u0627 \u0628\u06cc\u0646 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f.<\/p>\n<p>  \u0645\u0632\u0627\u06cc\u0627\u06cc \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644<\/p>\n<p>\u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0645\u062a\u0639\u062f\u062f\u06cc \u062f\u0627\u0631\u062f\u060c \u0627\u0632 \u062c\u0645\u0644\u0647:<\/p>\n<p>\u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc: \u0628\u0627 Module Federation\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0644 \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<br \/>\n\u06a9\u0627\u0631\u0627\u06cc\u06cc: \u0628\u0627 \u062a\u0642\u0633\u06cc\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0647 \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u06a9\u0646\u06cc\u062f \u0648 \u0632\u0645\u0627\u0646 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0648 \u0627\u062c\u0631\u0627 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u06cc\u062f.<br \/>\n\u0647\u0645\u06a9\u0627\u0631\u06cc: Module Federation \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0631\u0627\u062d\u062a \u062a\u0631 \u0628\u0627 \u0647\u0645 \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f\u060c \u0632\u06cc\u0631\u0627 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u06a9\u062f \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>  \u0645\u062b\u0627\u0644<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0641\u0631\u0648\u0646\u062f \u0645\u06cc\u06a9\u0631\u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Module Federation \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062f\u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0633\u0627\u0632\u06cc\u0645: Home App \u0648 Header App.<\/p>\n<p>\u06a9\u062f \u0645\u0646\u0628\u0639 \u06a9\u0627\u0645\u0644<\/p>\n<p>\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>  \u0645\u0631\u062d\u0644\u0647 1 &#8211; \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc<\/p>\n<p>\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 React \u062c\u062f\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 create-react-app \u06cc\u0627 \u0631\u0648\u0634 \u062f\u0644\u062e\u0648\u0627\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0634\u0647 \u062e\u0648\u062f\u060c \u062f\u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<p>npx create-react-app home-app<\/p>\n<p>npx create-react-app header-app<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0645\u0631\u062d\u0644\u0647 2 &#8211; Webpack 5 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0647\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u0648\u0628 \u067e\u06a9 5 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>#NPM<br \/>\nnpm install -\u2013save-dev webpack webpack-cli html-webpack-plugin webpack-dev-server babel-loader css-loader<\/p>\n<p>#Yarn<br \/>\nyarn add -D webpack webpack-cli html-webpack-plugin webpack-dev-server babel-loader css-loader<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0645\u0631\u062d\u0644\u0647 3 &#8211; \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u062e\u0648\u062f \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 home-app\/App.js:<\/p>\n<p>import React from &#8216;react&#8217;; \/\/ Must be imported for webpack to work<br \/>\nimport &#8216;.\/App.css&#8217;;<\/p>\n<p>function App() {<br \/>\n  return (<\/p>\n<p>  );<br \/>\n}<\/p>\n<p>export default App;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0627\u0646\u06af\u06cc \u062e\u0648\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>cd .\/home-app &amp;&amp; yarn &amp;&amp; yarn start<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0645\u0631\u062d\u0644\u0647 4- \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0631\u062f\u0646 \u0635\u0641\u062d\u0647 \u0633\u0631\u0635\u0641\u062d\u0647<\/p>\n<p>\u0635\u0641\u062d\u0647 \u0647\u062f\u0631 \u062e\u0648\u062f \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 header-app\/App.js:<\/p>\n<p>import React from &#8216;react&#8217;; \/\/ Must be imported for webpack to work<br \/>\nimport &#8216;.\/App.css&#8217;;<\/p>\n<p>function App() {<br \/>\n  return (<\/p>\n<p>  );<br \/>\n}<\/p>\n<p>export default App;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u062f\u0631 \u062e\u0648\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>cd .\/home-app &amp;&amp; yarn &amp;&amp; yarn start<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0645\u0631\u062d\u0644\u0647 5 &#8211; \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0633\u062a\u0647 \u0648\u0628<\/p>\n<p>\u0641\u0627\u06cc\u0644 webpack.config.js \u0631\u0627 \u062f\u0631 \u0631\u06cc\u0634\u0647 header-app\/ \u0648 home-app\/ \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<p>\/\/home-app\/webpack.config.js<br \/>\nconst HtmlWebpackPlugin = require(&#8220;html-webpack-plugin&#8221;);<\/p>\n<p>module.exports = {<br \/>\n    entry: &#8220;.\/src\/index&#8221;,<br \/>\n    mode: &#8220;development&#8221;,<br \/>\n    devServer: {<br \/>\n        port: 3000,  \/\/ port 3001 for header-app<br \/>\n    },<br \/>\n    module: {<br \/>\n        rules: [<br \/>\n            {<br \/>\n                test: \/\\.(js|jsx)?$\/,<br \/>\n                exclude: \/node_modules\/,<br \/>\n                use: [<br \/>\n                    {<br \/>\n                    loader: &#8220;babel-loader&#8221;,<br \/>\n                    options: {<br \/>\n                        presets: [&#8220;@babel\/preset-env&#8221;, &#8220;@babel\/preset-react&#8221;],<br \/>\n                    },<br \/>\n                    },<br \/>\n                ],<br \/>\n            },<br \/>\n            {<br \/>\n                test: \/\\.css$\/i,<br \/>\n                use: [&#8220;style-loader&#8221;, &#8220;css-loader&#8221;],<br \/>\n            },<br \/>\n        ],<br \/>\n    },<br \/>\n    plugins: [<br \/>\n        new HtmlWebpackPlugin({<br \/>\n            template: &#8220;.\/public\/index.html&#8221;,<br \/>\n        }),<br \/>\n    ],<br \/>\n    resolve: {<br \/>\n        extensions: [&#8220;.js&#8221;, &#8220;.jsx&#8221;],<br \/>\n    },<br \/>\n    target: &#8220;web&#8221;,<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>header-app\/src\/index.js &#038; home-app\/src\/index.js \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<p>import React from &#8216;react&#8217;;<br \/>\nimport ReactDOM from &#8216;react-dom\/client&#8217;;<br \/>\nimport &#8216;.\/index.css&#8217;;<br \/>\nimport App from &#8216;.\/App&#8217;;<\/p>\n<p>const root = ReactDOM.createRoot(document.getElementById(&#8216;app&#8217;));<br \/>\nroot.render(<\/p>\n<p>);<br \/>\nModify header-app\/public\/index.html &amp; home-app\/public\/index.html:<\/p>\n<p>    React with Webpack<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0634\u0631\u0648\u0639 \u0631\u0627 \u062f\u0631 header-app\/package.json \u0648 home-app\/package.json \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u062a\u0627 \u0627\u0632 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0633\u062a\u0647 \u0648\u0628 \u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>&#8220;scripts&#8221;: {<br \/>\n    &#8220;start&#8221;: &#8220;webpack serve&#8221;,<br \/>\n    &#8220;build&#8221;: &#8220;webpack &#8211;mode production&#8221;,<br \/>\n },<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 header \u0648 home app \u062e\u0648\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>cd home-app &amp;&amp; yarn start<br \/>\ncd header-app &amp;&amp; yarn start<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0645\u0631\u062d\u0644\u0647 6- \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 entry.js \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0644\u0627\u06cc\u0647 \u063a\u06cc\u0631\u0645\u0633\u062a\u0642\u06cc\u0645 \u0627\u0636\u0627\u0641\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645\u060c \u0632\u06cc\u0631\u0627 \u0628\u0647 Webpack \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u062a\u0645\u0627\u0645 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0631\u0627 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f.<\/p>\n<p>header-app\/entry.js \u0648 home-app\/entry.js \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<p>import(&#8216;.\/index.js&#8217;)<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0648\u0631\u0648\u062f\u06cc header-app\/webpack.config.js \u0648 home-app\/webpack.config.js \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f<\/p>\n<p>module.exports = {<br \/>\n    entry: &#8220;.\/src\/entry.js&#8221;,<br \/>\n    \/\/&#8230;<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0645\u0631\u062d\u0644\u0647 7- Header for Module Federation \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f \u062f\u0631 header-app\/webpack.config.js Header \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 home-app \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u0645:<\/p>\n<p>\/\/ header-app\/webpack.config.js<br \/>\nconst HtmlWebpackPlugin = require(&#8220;html-webpack-plugin&#8221;);<br \/>\n\/\/ import ModuleFederationPlugin from webpack<br \/>\nconst ModuleFederationPlugin = require(&#8220;webpack\/lib\/container\/ModuleFederationPlugin&#8221;);<br \/>\n\/\/ import dependencies from package.json, which includes react and react-dom<br \/>\nconst { dependencies } = require(&#8220;.\/package.json&#8221;);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>module.exports = {<br \/>\n    \/\/&#8230;<br \/>\n    plugins: [<br \/>\n        \/\/&#8230;<br \/>\n        new ModuleFederationPlugin({<br \/>\n            name: &#8220;HeaderApp&#8221;,  \/\/ This application named &#8216;HeaderApp&#8217;<br \/>\n            filename: &#8220;remoteEntry.js&#8221;,  \/\/ output a js file<br \/>\n            exposes: { \/\/ which exposes<br \/>\n              &#8220;.\/Header&#8221;: &#8220;.\/src\/App&#8221;,  \/\/ a module &#8216;Header&#8217; from &#8216;.\/src\/App&#8217;<br \/>\n            },<br \/>\n            shared: {  \/\/ and shared<br \/>\n              &#8230;dependencies,  \/\/ some other dependencies<br \/>\n              react: { \/\/ react<br \/>\n                singleton: true,<br \/>\n                requiredVersion: dependencies[&#8220;react&#8221;],<br \/>\n              },<br \/>\n              &#8220;react-dom&#8221;: { \/\/ react-dom<br \/>\n                singleton: true,<br \/>\n                requiredVersion: dependencies[&#8220;react-dom&#8221;],<br \/>\n              },<br \/>\n            },<br \/>\n        }),<br \/>\n    ],<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0628\u0647 http:\/\/localhost:3001\/remoteEntry.js \u0628\u0631\u0648\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u0627\u0646\u06cc\u0641\u0633\u062a \u062a\u0645\u0627\u0645 \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u062f\u0631 \u062f\u0631 \u0645\u0639\u0631\u0636 \u062f\u06cc\u062f \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u0646\u062f.<\/p>\n<p>  \u0645\u0631\u062d\u0644\u0647 8- \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 Home \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f ModuleFederationPlugin \u0631\u0627 \u0628\u0647 home-app\/webpack.config.js \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<p>\/\/ home-app\/webpack.config.js<br \/>\nconst HtmlWebpackPlugin = require(&#8220;html-webpack-plugin&#8221;);<br \/>\n\/\/ import ModuleFederationPlugin from webpack<br \/>\nconst ModuleFederationPlugin = require(&#8220;webpack\/lib\/container\/ModuleFederationPlugin&#8221;);<br \/>\n\/\/ import dependencies from package.json, which includes react and react-dom<br \/>\nconst { dependencies } = require(&#8220;.\/package.json&#8221;);<\/p>\n<p>module.exports = {<br \/>\n    \/\/&#8230;<br \/>\n    plugins: [<br \/>\n        \/\/&#8230;<br \/>\n        new ModuleFederationPlugin({<br \/>\n            name: &#8220;HomeApp&#8221;,  \/\/ This application named &#8216;HomeApp&#8217;<br \/>\n            \/\/ This is where we define the federated modules that we want to consume in this app.<br \/>\n            \/\/ Note that we specify &#8220;Header&#8221; as the internal name<br \/>\n            \/\/ so that we can load the components using import(&#8220;Header\/&#8221;).<br \/>\n            \/\/ We also define the location where the remote&#8217;s module definition is hosted:<br \/>\n            \/\/ Header@[http:\/\/localhost:3001\/remoteEntry.js].<br \/>\n            \/\/ This URL provides three important pieces of information: the module&#8217;s name is &#8220;Header&#8221;, it is hosted on &#8220;localhost:3001&#8221;,<br \/>\n            \/\/ and its module definition is &#8220;remoteEntry.js&#8221;.<br \/>\n            remotes: {<br \/>\n                &#8220;HeaderApp&#8221;: &#8220;HeaderApp@http:\/\/localhost:3001\/remoteEntry.js&#8221;,<br \/>\n            },<br \/>\n            shared: {  \/\/ and shared<br \/>\n                &#8230;dependencies,  \/\/ other dependencies<br \/>\n                react: { \/\/ react<br \/>\n                    singleton: true,<br \/>\n                    requiredVersion: dependencies[&#8220;react&#8221;],<br \/>\n                },<br \/>\n                &#8220;react-dom&#8221;: { \/\/ react-dom<br \/>\n                    singleton: true,<br \/>\n                    requiredVersion: dependencies[&#8220;react-dom&#8221;],<br \/>\n                },<br \/>\n            },<br \/>\n        }),<br \/>\n    ],<br \/>\n};<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0648\u0644\u0641\u0647 Header \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627\u0647 \u062f\u0648\u0631\u060c home-app\/src\/App.js \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<p>import React, { lazy, Suspense } from &#8216;react&#8217;; \/\/ Must be imported for webpack to work<br \/>\nimport &#8216;.\/App.css&#8217;;<\/p>\n<p>const Header = lazy(() =&gt; import(&#8216;HeaderApp\/Header&#8217;));<\/p>\n<p>function App() {<br \/>\n  return (<\/p>\n<p>      Loading Header&#8230;}&gt;<\/p>\n<p>      Demo home page<\/p>\n<p>  ) } \u0635\u0627\u062f\u0631\u0627\u062a \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0628\u0631\u0646\u0627\u0645\u0647;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0648 \u0627\u0646\u062c\u0627\u0645 \u0634\u062f! \u0634\u0645\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u062f\u0631\u0627\u0644 \u0645\u0627\u0698\u0648\u0644 \u0628\u0627 \u0647\u062f\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f.\u0645\u0639\u0645\u0627\u0631\u06cc Micro Frontend \u0648 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0647\u0633\u062a\u0646\u062f. \u0628\u0627 \u0634\u06a9\u0633\u062a\u0646 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0632\u0631\u06af \u0628\u0647 \u0642\u0637\u0639\u0627\u062a \u06a9\u0648\u0686\u06a9\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u0631\u060c \u062a\u06cc\u0645 \u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0648 \u0645\u0633\u062a\u0642\u0644 \u062a\u0631 \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f. \u0633\u067e\u0633 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u06a9\u062f \u0631\u0627 \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0646\u062f\u060c \u0647\u0645\u06a9\u0627\u0631\u06cc \u0631\u0627 \u0645\u0645\u06a9\u0646 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u0648 \u062a\u0644\u0627\u0634\u200c\u0647\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0628\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0645\u0631\u0627\u062d\u0644 \u0630\u06a9\u0631 \u0634\u062f\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f micro frontend \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u062f\u0631 React \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0647\u0631\u0647 \u0628\u0628\u0631\u06cc\u062f.\u0627\u06af\u0631 \u0633\u0624\u0627\u0644 \u062f\u06cc\u06af\u0631\u06cc \u062f\u0627\u0631\u06cc\u062f\u060c \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0638\u0631 \u062f\u0647\u06cc\u062f \u06cc\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u0644\u06cc\u0646\u06a9\u062f\u06cc\u0646 \u0628\u0627 \u0645\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n<div data-article-id=\"2041075\" id=\"article-body\">\n<p><mark>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062f\u0631 \u0627\u0635\u0644 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/mark><\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0639\u0645\u0627\u0631\u06cc micro frontend \u0648 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0633\u0627\u062e\u062a \u06cc\u06a9 micro frontend \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u062f\u0631 React \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#Micro_frontend_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\" >Micro frontend \u0686\u06cc\u0633\u062a\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%81%D8%AF%D8%B1%D8%A7%D8%B3%DB%8C%D9%88%D9%86_%D9%85%D8%A7%DA%98%D9%88%D9%84_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\" >\u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0686\u06cc\u0633\u062a\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%DA%86%DA%AF%D9%88%D9%86%D9%87_%DA%A9%D8%A7%D8%B1_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\" >\u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%B2%D8%A7%DB%8C%D8%A7%DB%8C_%D9%81%D8%AF%D8%B1%D8%A7%D8%B3%DB%8C%D9%88%D9%86_%D9%85%D8%A7%DA%98%D9%88%D9%84\" >\u0645\u0632\u0627\u06cc\u0627\u06cc \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%AB%D8%A7%D9%84\" >\u0645\u062b\u0627\u0644<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_1_%E2%80%93_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%87%D8%A7%DB%8C_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C\" >\u0645\u0631\u062d\u0644\u0647 1 &#8211; \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_2_%E2%80%93_Webpack_5_%D8%B1%D8%A7_%D9%86%D8%B5%D8%A8_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u0631\u062d\u0644\u0647 2 &#8211; Webpack 5 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_3_%E2%80%93_%D8%B5%D9%81%D8%AD%D9%87_%D8%A7%D8%B5%D9%84%DB%8C_%D8%B1%D8%A7_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u0631\u062d\u0644\u0647 3 &#8211; \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_4-_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%DA%A9%D8%B1%D8%AF%D9%86_%D8%B5%D9%81%D8%AD%D9%87_%D8%B3%D8%B1%D8%B5%D9%81%D8%AD%D9%87\" >\u0645\u0631\u062d\u0644\u0647 4- \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0631\u062f\u0646 \u0635\u0641\u062d\u0647 \u0633\u0631\u0635\u0641\u062d\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_5_%E2%80%93_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87_%D9%88%D8%A8\" >\u0645\u0631\u062d\u0644\u0647 5 &#8211; \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0633\u062a\u0647 \u0648\u0628<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_6-_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D9%81%D8%AF%D8%B1%D8%A7%D8%B3%DB%8C%D9%88%D9%86_%D9%85%D8%A7%DA%98%D9%88%D9%84\" >\u0645\u0631\u062d\u0644\u0647 6- \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_7-_Header_for_Module_Federation_%D8%B1%D8%A7_%D9%86%D8%B4%D8%A7%D9%86_%D9%85%DB%8C_%D8%AF%D9%87%D8%AF\" >\u0645\u0631\u062d\u0644\u0647 7- Header for Module Federation \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/micro-frontend-with-module-federation-in-react-3g4m\/#%D9%85%D8%B1%D8%AD%D9%84%D9%87_8-_%D9%81%D8%AF%D8%B1%D8%A7%D8%B3%DB%8C%D9%88%D9%86_%D9%85%D8%A7%DA%98%D9%88%D9%84_%D8%B1%D8%A7_%D8%AF%D8%B1_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_Home_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0645\u0631\u062d\u0644\u0647 8- \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 Home \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Micro_frontend_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\"><\/span>\n<p>  Micro frontend \u0686\u06cc\u0633\u062a\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Micro frontend \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0627\u0645\u0644 \u062a\u062c\u0632\u06cc\u0647 \u06cc\u06a9 \u0628\u062e\u0634 \u0628\u0632\u0631\u06af \u062c\u0644\u0648\u06cc\u06cc \u0628\u0647 \u0642\u0637\u0639\u0627\u062a \u06a9\u0648\u0686\u06a9\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u06a9\u0646\u062a\u0631\u0644\u200c\u062a\u0631 \u0627\u0633\u062a. \u0647\u0631 \u0642\u0637\u0639\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u0633\u062a\u0642\u0644 \u06cc\u0627 microfrontend \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u062a\u0648\u0633\u0639\u0647 \u06cc\u0627\u0628\u062f\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0634\u0648\u062f \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u0627\u0628\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u062a\u06cc\u0645 \u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0648 \u0645\u0633\u062a\u0642\u0644 \u062a\u0631 \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0644\u06cc \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%81%D8%AF%D8%B1%D8%A7%D8%B3%DB%8C%D9%88%D9%86_%D9%85%D8%A7%DA%98%D9%88%D9%84_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\"><\/span>\n<p>  \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0686\u06cc\u0633\u062a\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Module Federation \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0634\u062a\u0646 \u06a9\u062f \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u062e\u062a\u0644\u0641 \u06cc\u0627 \u0645\u06cc\u06a9\u0631\u0648 \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u062f\u0627\u0645\u0646\u0647 \u062a\u0648\u0632\u06cc\u0639 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0632\u0631\u06af \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%DA%AF%D9%88%D9%86%D9%87_%DA%A9%D8%A7%D8%B1_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\"><\/span>\n<p>  \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Module Federation \u0633\u06cc\u0633\u062a\u0645\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0627\u0632 \u0628\u062e\u0634 \u0647\u0627\u06cc\u06cc \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u06cc\u06af\u0631 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u06a9\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0622\u0646 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><\/p>\n<p>\u0628\u0627 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u062f \u0631\u0627 \u0628\u06cc\u0646 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B2%D8%A7%DB%8C%D8%A7%DB%8C_%D9%81%D8%AF%D8%B1%D8%A7%D8%B3%DB%8C%D9%88%D9%86_%D9%85%D8%A7%DA%98%D9%88%D9%84\"><\/span>\n<p>  \u0645\u0632\u0627\u06cc\u0627\u06cc \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0645\u062a\u0639\u062f\u062f\u06cc \u062f\u0627\u0631\u062f\u060c \u0627\u0632 \u062c\u0645\u0644\u0647:<\/p>\n<ul>\n<li>\n<p><strong>\u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc<\/strong>: \u0628\u0627 Module Federation\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0644 \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u0627\u0631\u0627\u06cc\u06cc<\/strong>: \u0628\u0627 \u062a\u0642\u0633\u06cc\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0647 \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u06a9\u0646\u06cc\u062f \u0648 \u0632\u0645\u0627\u0646 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0648 \u0627\u062c\u0631\u0627 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0647\u0645\u06a9\u0627\u0631\u06cc<\/strong>: Module Federation \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0631\u0627\u062d\u062a \u062a\u0631 \u0628\u0627 \u0647\u0645 \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f\u060c \u0632\u06cc\u0631\u0627 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u06a9\u062f \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0631\u0627 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84\"><\/span>\n<p>  \u0645\u062b\u0627\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0641\u0631\u0648\u0646\u062f \u0645\u06cc\u06a9\u0631\u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Module Federation \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u062f\u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0633\u0627\u0632\u06cc\u0645: Home App \u0648 Header App.<\/p>\n<p>\u06a9\u062f \u0645\u0646\u0628\u0639 \u06a9\u0627\u0645\u0644<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxxtqfp04k3nztwl3q88n.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"538\" title=\"\"><\/p>\n<p>\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_1_%E2%80%93_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%87%D8%A7%DB%8C_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 1 &#8211; \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 React \u062c\u062f\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 create-react-app \u06cc\u0627 \u0631\u0648\u0634 \u062f\u0644\u062e\u0648\u0627\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u06cc\u0634\u0647 \u062e\u0648\u062f\u060c \u062f\u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>npx create-react-app home-app\n\nnpx create-react-app header-app\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_2_%E2%80%93_Webpack_5_%D8%B1%D8%A7_%D9%86%D8%B5%D8%A8_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 2 &#8211; Webpack 5 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0647\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u0648\u0628 \u067e\u06a9 5 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>#NPM\nnpm install -\u2013save-dev webpack webpack-cli html-webpack-plugin webpack-dev-server babel-loader css-loader\n\n#Yarn\nyarn add -D webpack webpack-cli html-webpack-plugin webpack-dev-server babel-loader css-loader\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_3_%E2%80%93_%D8%B5%D9%81%D8%AD%D9%87_%D8%A7%D8%B5%D9%84%DB%8C_%D8%B1%D8%A7_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 3 &#8211; \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgxqmtzytbilr2nynyog.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"514\" title=\"\"><\/p>\n<p>\u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u062e\u0648\u062f \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 home-app\/App.js:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>import React from 'react'; \/\/ Must be imported for webpack to work\nimport '.\/App.css';\n\nfunction App() {\n  return (\n    \n  );\n}\n\nexport default App;\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0627\u0646\u06af\u06cc \u062e\u0648\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>cd .\/home-app &amp;&amp; yarn &amp;&amp; yarn start\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_4-_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%DA%A9%D8%B1%D8%AF%D9%86_%D8%B5%D9%81%D8%AD%D9%87_%D8%B3%D8%B1%D8%B5%D9%81%D8%AD%D9%87\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 4- \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0631\u062f\u0646 \u0635\u0641\u062d\u0647 \u0633\u0631\u0635\u0641\u062d\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv089sexd2f74hy5hz6qi.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"496\" title=\"\"><\/p>\n<p>\u0635\u0641\u062d\u0647 \u0647\u062f\u0631 \u062e\u0648\u062f \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 header-app\/App.js:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>import React from 'react'; \/\/ Must be imported for webpack to work\nimport '.\/App.css';\n\nfunction App() {\n  return (\n    \n  );\n}\n\nexport default App;\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u062f\u0631 \u062e\u0648\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>cd .\/home-app &amp;&amp; yarn &amp;&amp; yarn start\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_5_%E2%80%93_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87_%D9%88%D8%A8\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 5 &#8211; \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0633\u062a\u0647 \u0648\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0641\u0627\u06cc\u0644 webpack.config.js \u0631\u0627 \u062f\u0631 \u0631\u06cc\u0634\u0647 header-app\/ \u0648 home-app\/ \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/\/home-app\/webpack.config.js\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\n\nmodule.exports = {\n    entry: \".\/src\/index\",\n    mode: \"development\",\n    devServer: {\n        port: 3000,  \/\/ port 3001 for header-app\n    },\n    module: {\n        rules: [\n            {\n                test: \/\\.(js|jsx)?$\/,\n                exclude: \/node_modules\/,\n                use: [\n                    {\n                    loader: \"babel-loader\",\n                    options: {\n                        presets: [\"@babel\/preset-env\", \"@babel\/preset-react\"],\n                    },\n                    },\n                ],\n            },\n            {\n                test: \/\\.css$\/i,\n                use: [\"style-loader\", \"css-loader\"],\n            },\n        ],\n    },\n    plugins: [\n        new HtmlWebpackPlugin({\n            template: \".\/public\/index.html\",\n        }),\n    ],\n    resolve: {\n        extensions: [\".js\", \".jsx\"],\n    },\n    target: \"web\",\n};\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>header-app\/src\/index.js &#038; home-app\/src\/index.js \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>import React from 'react';\nimport ReactDOM from 'react-dom\/client';\nimport '.\/index.css';\nimport App from '.\/App';\n\nconst root = ReactDOM.createRoot(document.getElementById('app'));\nroot.render(\n  <react.strictmode>\n    <app\/>\n  <\/react.strictmode>\n);\nModify header-app\/public\/index.html &amp; home-app\/public\/index.html:\n\n\n\n  \n    <meta charset=\"UTF-8\"\/>\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"\/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n    <title>React with Webpack<\/title>\n  \n  \n    \n\n    <script src=\"https:\/\/dev.to\/samhoooo\/main.js\"\/>\n  \n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0634\u0631\u0648\u0639 \u0631\u0627 \u062f\u0631 header-app\/package.json \u0648 home-app\/package.json \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u062a\u0627 \u0627\u0632 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0633\u062a\u0647 \u0648\u0628 \u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\"scripts\": {\n    \"start\": \"webpack serve\",\n    \"build\": \"webpack --mode production\",\n },\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 header \u0648 home app \u062e\u0648\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>cd home-app &amp;&amp; yarn start\ncd header-app &amp;&amp; yarn start\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_6-_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D9%81%D8%AF%D8%B1%D8%A7%D8%B3%DB%8C%D9%88%D9%86_%D9%85%D8%A7%DA%98%D9%88%D9%84\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 6- \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 entry.js \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0628\u0647 \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0644\u0627\u06cc\u0647 \u063a\u06cc\u0631\u0645\u0633\u062a\u0642\u06cc\u0645 \u0627\u0636\u0627\u0641\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645\u060c \u0632\u06cc\u0631\u0627 \u0628\u0647 Webpack \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u062a\u0645\u0627\u0645 \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0631\u0627 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f.<\/p>\n<p>header-app\/entry.js \u0648 home-app\/entry.js \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>import('.\/index.js')\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648\u0631\u0648\u062f\u06cc header-app\/webpack.config.js \u0648 home-app\/webpack.config.js \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>module.exports = {\n    entry: \".\/src\/entry.js\",\n    \/\/...\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_7-_Header_for_Module_Federation_%D8%B1%D8%A7_%D9%86%D8%B4%D8%A7%D9%86_%D9%85%DB%8C_%D8%AF%D9%87%D8%AF\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 7- Header for Module Federation \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f \u062f\u0631 header-app\/webpack.config.js Header \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 home-app \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/\/ header-app\/webpack.config.js\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\n\/\/ import ModuleFederationPlugin from webpack\nconst ModuleFederationPlugin = require(\"webpack\/lib\/container\/ModuleFederationPlugin\"); \n\/\/ import dependencies from package.json, which includes react and react-dom\nconst { dependencies } = require(\".\/package.json\");\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>module.exports = {\n    \/\/...\n    plugins: [\n        \/\/...\n        new ModuleFederationPlugin({\n            name: \"HeaderApp\",  \/\/ This application named 'HeaderApp'\n            filename: \"remoteEntry.js\",  \/\/ output a js file\n            exposes: { \/\/ which exposes\n              \".\/Header\": \".\/src\/App\",  \/\/ a module 'Header' from '.\/src\/App'\n            },\n            shared: {  \/\/ and shared\n              ...dependencies,  \/\/ some other dependencies\n              react: { \/\/ react\n                singleton: true,\n                requiredVersion: dependencies[\"react\"],\n              },\n              \"react-dom\": { \/\/ react-dom\n                singleton: true,\n                requiredVersion: dependencies[\"react-dom\"],\n              },\n            },\n        }),\n    ],\n};\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0628\u0647 http:\/\/localhost:3001\/remoteEntry.js \u0628\u0631\u0648\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u0627\u0646\u06cc\u0641\u0633\u062a \u062a\u0645\u0627\u0645 \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u062f\u0631 \u062f\u0631 \u0645\u0639\u0631\u0636 \u062f\u06cc\u062f \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u0646\u062f.<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%AD%D9%84%D9%87_8-_%D9%81%D8%AF%D8%B1%D8%A7%D8%B3%DB%8C%D9%88%D9%86_%D9%85%D8%A7%DA%98%D9%88%D9%84_%D8%B1%D8%A7_%D8%AF%D8%B1_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_Home_%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0645\u0631\u062d\u0644\u0647 8- \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 Home \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f ModuleFederationPlugin \u0631\u0627 \u0628\u0647 home-app\/webpack.config.js \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/\/ home-app\/webpack.config.js\nconst HtmlWebpackPlugin = require(\"html-webpack-plugin\");\n\/\/ import ModuleFederationPlugin from webpack\nconst ModuleFederationPlugin = require(\"webpack\/lib\/container\/ModuleFederationPlugin\");\n\/\/ import dependencies from package.json, which includes react and react-dom\nconst { dependencies } = require(\".\/package.json\");\n\nmodule.exports = {\n    \/\/...\n    plugins: [\n        \/\/...\n        new ModuleFederationPlugin({\n            name: \"HomeApp\",  \/\/ This application named 'HomeApp'\n            \/\/ This is where we define the federated modules that we want to consume in this app. \n            \/\/ Note that we specify \"Header\" as the internal name \n            \/\/ so that we can load the components using import(\"Header\/\"). \n            \/\/ We also define the location where the remote's module definition is hosted: \n            \/\/ Header@[http:\/\/localhost:3001\/remoteEntry.js]. \n            \/\/ This URL provides three important pieces of information: the module's name is \"Header\", it is hosted on \"localhost:3001\", \n            \/\/ and its module definition is \"remoteEntry.js\".\n            remotes: { \n                \"HeaderApp\": \"HeaderApp@http:\/\/localhost:3001\/remoteEntry.js\",            \n            },\n            shared: {  \/\/ and shared\n                ...dependencies,  \/\/ other dependencies\n                react: { \/\/ react\n                    singleton: true,\n                    requiredVersion: dependencies[\"react\"],\n                },\n                \"react-dom\": { \/\/ react-dom\n                    singleton: true,\n                    requiredVersion: dependencies[\"react-dom\"],\n                },\n            },\n        }),\n    ],\n};\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0648\u0644\u0641\u0647 Header \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627\u0647 \u062f\u0648\u0631\u060c home-app\/src\/App.js \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>import React, { lazy, Suspense } from 'react'; \/\/ Must be imported for webpack to work\nimport '.\/App.css';\n\nconst Header = lazy(() =&gt; import('HeaderApp\/Header'));\n\nfunction App() {\n  return (\n    <p>\n      <suspense fallback=\"{&lt;div\">Loading Header...<\/suspense><\/p>}&gt;\n        <header\/>\n      \n      <p>Demo home page<\/p>\n    <\/code><\/pre>\n<\/div>\n<p>  ) } \u0635\u0627\u062f\u0631\u0627\u062a \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0628\u0631\u0646\u0627\u0645\u0647;<\/p>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648 \u0627\u0646\u062c\u0627\u0645 \u0634\u062f! \u0634\u0645\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u062f\u0631\u0627\u0644 \u0645\u0627\u0698\u0648\u0644 \u0628\u0627 \u0647\u062f\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f.<\/p>\n<p>\u0645\u0639\u0645\u0627\u0631\u06cc Micro Frontend \u0648 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0647\u0633\u062a\u0646\u062f. \u0628\u0627 \u0634\u06a9\u0633\u062a\u0646 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0632\u0631\u06af \u0628\u0647 \u0642\u0637\u0639\u0627\u062a \u06a9\u0648\u0686\u06a9\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u0631\u060c \u062a\u06cc\u0645 \u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0648 \u0645\u0633\u062a\u0642\u0644 \u062a\u0631 \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f. \u0633\u067e\u0633 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u06a9\u062f \u0631\u0627 \u0628\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0646\u062f\u060c \u0647\u0645\u06a9\u0627\u0631\u06cc \u0631\u0627 \u0645\u0645\u06a9\u0646 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u0648 \u062a\u0644\u0627\u0634\u200c\u0647\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0628\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0645\u0631\u0627\u062d\u0644 \u0630\u06a9\u0631 \u0634\u062f\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f micro frontend \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u062f\u0631 React \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0647\u0631\u0647 \u0628\u0628\u0631\u06cc\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0633\u0624\u0627\u0644 \u062f\u06cc\u06af\u0631\u06cc \u062f\u0627\u0631\u06cc\u062f\u060c \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0638\u0631 \u062f\u0647\u06cc\u062f \u06cc\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u0644\u06cc\u0646\u06a9\u062f\u06cc\u0646 \u0628\u0627 \u0645\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062f\u0631 \u0627\u0635\u0644 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0639\u0645\u0627\u0631\u06cc micro frontend \u0648 \u0641\u062f\u0631\u0627\u0633\u06cc\u0648\u0646 \u0645\u0627\u0698\u0648\u0644 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0633\u0627\u062e\u062a \u06cc\u06a9 micro frontend \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":80391,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-80390","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/80390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=80390"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/80390\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/80391"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=80390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=80390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=80390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}