<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Micro-Frontends on Commentary of Takao</title><link>https://takao.blog/es/tags/micro-frontends/</link><description>Recent content in Micro-Frontends on Commentary of Takao</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>Commentary of Takao</copyright><lastBuildDate>Sun, 12 Jul 2026 04:12:51 +0900</lastBuildDate><atom:link href="https://takao.blog/es/tags/micro-frontends/index.xml" rel="self" type="application/rss+xml"/><item><title>Module Federation: Micro-frontends con Webpack 5</title><link>https://takao.blog/es/web/module-federation/</link><pubDate>Tue, 09 Jul 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/module-federation/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/module-federation-es.png" alt="Featured image of post Module Federation: Micro-frontends con Webpack 5" /&gt;&lt;p&gt;Module Federation permite cargar código JavaScript desde otra aplicación en tiempo de ejecución. Es la base de los micro-frontends modernos.&lt;/p&gt;
&lt;h2 id="cómo-funciona"&gt;Cómo funciona
&lt;/h2&gt;&lt;p&gt;Una aplicación expone módulos via &lt;code&gt;ModuleFederationPlugin&lt;/code&gt;. Otra aplicación los consume como si fueran locales. Los módulos compartidos se cargan una sola vez.&lt;/p&gt;
&lt;h2 id="configuración-expósitor"&gt;Configuración expósitor
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;ModuleFederationPlugin&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;app1&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;exposes&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; { &lt;span style="color:#e6db74"&gt;&amp;#39;./Button&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;./src/Button&amp;#39;&lt;/span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;shared&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;react&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;singleton&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt; } }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;})
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="configuración-consumidor"&gt;Configuración consumidor
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;remotes: { app1: 'app1@http://...' }&lt;/code&gt;. Importa &lt;code&gt;import('app1/Button')&lt;/code&gt;. React y otras librerías compartidas como singletons.&lt;/p&gt;</description></item></channel></rss>