Paquetes de doble formato: construcción sin fisuras de CJS y ESM con Nx

Construye de forma precisa y eficiente aplicaciones con Angular utilizando la combinación de Angular CLI, Jasmine, y Protractor para una construcción sin fisuras y eficiente con Nx.

27 oct 2025 • 3 min de lectura • Equipo Q2BSTUDIO

Construcción sin fisuras de CJS y ESM con Nx

Introducción: El ecosistema de módulos de JavaScript está en transición. ESM (ECMAScript Modules) se ha consolidado como el estándar moderno mientras que CommonJS o CJS sigue muy presente en muchos proyectos heredados. ESM, introducido en ES6 en 2015, unifica la modularidad en navegador y servidor y aporta ventajas claves como carga asíncrona, mejor optimización por tree shaking mediante análisis estático y soporte nativo en navegadores sin necesidad de bundlers.

Por qué ofrecer ambos formatos: Como autor de bibliotecas conviene soportar proyectos legacy basados en CommonJS y a la vez proyectos modernos que consumen ESM. Publicar un único paquete npm compatible con ambos formatos garantiza máxima compatibilidad y alcance. Ventajas prácticas: compatibilidad universal, mejor rendimiento, y características modernas como dynamic import y top level await en entornos que lo soportan.

Configurando un workspace Nx: Para construir un paquete universal recomendamos usar Nx junto a Rollup. Pasos rápidos para crear un workspace y una librería publicable con bundler rollup: bunx create-nx-workspace@22 dual-modules-workspace cd dual-modules-workspace bunx nx g @nx/js:lib packages/my-library --name my-library --importPath @dual-modules-workspace/my-library --bundler rollup --linter eslint --publishable --unitTestRunner vitest --setParserOptionsProject --useProjectJson. Este esquema genera una estructura organizada con package.json, rollup.config.cjs, src y tsconfig orientados a una librería publicable.

Configuración de Rollup: Usar el helper de Nx para rollup simplifica la configuración. Se recomienda emitir salidas tanto en formato esm como cjs y activar preserveModules para favorecer tree shaking y mantener la estructura de módulos en dist. También puede usarse un compilador rápido como swc para compilar TypeScript a JS eficientemente.

package.json y campo exports: Para dirigir import a ESM y require a CJS de forma automática hay que aprovechar el campo exports. Indicar types apuntando al fichero de declaraciones generado y establecer require e import en las rutas correctas asegura que consumidores CommonJS y ESM resuelvan el paquete de forma nativa. No olvidar marcar sideEffects como false cuando la librería no tiene efectos secundarios para mejorar tree shaking.

Declaraciones TypeScript: Generar .d.ts centralizados permite que consumidores TypeScript obtengan tipado correcto. Si se quiere evitar mapas de origen en la publicación, desactivar sourceMap en el tsconfig base puede ser útil para reducir peso del paquete.

Proceso de build: Ejecutar nx build my-library producirá en dist versiones index.cjs.js e index.esm.js junto con index.d.ts y una estructura de módulos preservada. Validar que los paths de exports en package.json coincidan con los ficheros generados y que los bundles funcionen en Node y en bundlers modernos.

Publicación y release: Nx incluye utilidades para release que integran versionado semántico y conventional commits, facilitando la publicación en el registro npm. Configurar CI para builds y pruebas antes de publicar ayuda a mantener calidad y evitar regressiones en consumidores tanto legacy como modernos.

Buenas prácticas adicionales: mantener el bundle pequeño, declarar sideEffects apropiadamente, probar la librería con ejemplos reales en proyectos CJS y ESM, y documentar claramente cómo importar según el entorno. Considera también ofrecer builds para navegadores si tu librería se consume en frontend puro.

Sobre Q2BSTUDIO: En Q2BSTUDIO somos una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida, con amplia experiencia en inteligencia artificial, ciberseguridad, servicios cloud aws y azure y servicios inteligencia de negocio. Si necesitas desarrollar componentes modulares, bibliotecas publicables o arquitecturas que soporten múltiples formatos y despliegues en la nube, podemos ayudarte a diseñar la solución óptima. Conoce nuestras capacidades en desarrollo de aplicaciones y software a medida en desarrollo de aplicaciones y software multiplataforma y nuestras opciones de infraestructura en servicios cloud AWS y Azure.

Servicios y palabras clave: Ofrecemos proyectos con enfoque en ia para empresas, agentes IA, power bi y servicios inteligencia de negocio, integración con pipelines de CI CD, y auditorías de seguridad y pentesting para proteger tus paquetes y entornos. Si tu organización busca acelerar adopción de inteligencia artificial, mejorar la seguridad o desplegar soluciones cloud escalables, Q2BSTUDIO aporta experiencia práctica y soluciones personalizadas.

Conclusión: Construir paquetes duales CJS y ESM con Nx y Rollup es una estrategia efectiva para maximizar compatibilidad y rendimiento. Publica salidas duales, configura exports correctamente y valida tus builds. Si quieres apoyo profesional para desarrollar, asegurar o desplegar tus librerías y aplicaciones a medida, contacta con Q2BSTUDIO y transforma tus ideas en productos robustos y escalables.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat