<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Esm on Commentary of Takao</title><link>https://takao.blog/es/tags/esm/</link><description>Recent content in Esm 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/esm/index.xml" rel="self" type="application/rss+xml"/><item><title>ESM estable en Node.js: Soporte de require</title><link>https://takao.blog/es/web/node-esm-require-support-stable/</link><pubDate>Wed, 05 Nov 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/node-esm-require-support-stable/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/node-esm-require-support-stable-es.png" alt="Featured image of post ESM estable en Node.js: Soporte de require" /&gt;&lt;p&gt;Node.js ha estabilizado el soporte de ES Modules. La función &lt;code&gt;require(esm)&lt;/code&gt; permite cargar módulos ESM desde CJS de forma síncrona, simplificando la migración.&lt;/p&gt;
&lt;h2 id="requireesm-en-nodejs-22"&gt;require(esm) en Node.js 22+
&lt;/h2&gt;&lt;p&gt;Node.js 22+ permite &lt;code&gt;require()&lt;/code&gt; de módulos ESM sincrónicamente si no tienen top-level await. Facilita la adopción híbrida.&lt;/p&gt;
&lt;h2 id="configuración"&gt;Configuración
&lt;/h2&gt;&lt;p&gt;No requiere flags de línea de comandos. Los paquetes ESM deben declararse con &lt;code&gt;&amp;quot;type&amp;quot;: &amp;quot;module&amp;quot;&lt;/code&gt; o &lt;code&gt;.mjs&lt;/code&gt;. &lt;code&gt;require()&lt;/code&gt; resuelve automáticamente.&lt;/p&gt;
&lt;h2 id="limitaciones"&gt;Limitaciones
&lt;/h2&gt;&lt;p&gt;Top-level await deshabilita require(esm). Paquetes ESM con solo named exports pueden necesitar ajustes. Los loaders personalizados afectan el comportamiento.&lt;/p&gt;</description></item><item><title>Interoperabilidad ESM y CJS en Node.js</title><link>https://takao.blog/es/web/node-esm-cjs-interoperability/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/es/web/node-esm-cjs-interoperability/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/node-esm-cjs-interoperability-es.png" alt="Featured image of post Interoperabilidad ESM y CJS en Node.js" /&gt;&lt;p&gt;Node.js soporta dos sistemas de módulos: CommonJS (require) y ES Modules (import). La interoperabilidad entre ambos tiene reglas específicas.&lt;/p&gt;
&lt;h2 id="detección-del-tipo-de-módulo"&gt;Detección del tipo de módulo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;.mjs&lt;/code&gt; siempre ESM. &lt;code&gt;.cjs&lt;/code&gt; siempre CJS. &lt;code&gt;.js&lt;/code&gt; depende del &lt;code&gt;package.json&lt;/code&gt; más cercano: &lt;code&gt;&amp;quot;type&amp;quot;: &amp;quot;module&amp;quot;&lt;/code&gt; para ESM, &lt;code&gt;&amp;quot;type&amp;quot;: &amp;quot;commonjs&amp;quot;&lt;/code&gt; o sin campo para CJS.&lt;/p&gt;
&lt;h2 id="importar-cjs-desde-esm"&gt;Importar CJS desde ESM
&lt;/h2&gt;&lt;p&gt;Los módulos CJS se importan con &lt;code&gt;import&lt;/code&gt; desde ESM. Node.js envuelve &lt;code&gt;module.exports&lt;/code&gt; como default export. Named exports requieren análisis estático limitado.&lt;/p&gt;</description></item></channel></rss>