HMR nativo en Node.js: Una inmersión técnica

2025-06-04

Este artículo detalla cómo implementar la sustitución en caliente de módulos (HMR) nativa en Node.js. Los enfoques tradicionales que usan los indicadores `--watch` o sistemas de módulos virtuales como Vite son ineficientes y sufren de aislamiento de módulos. El autor aprovecha los ganchos de módulo integrados de `node:module` de Node.js para crear un mecanismo de actualización incremental basado en números de versión de archivos. El núcleo es la clase `FileTree`, que carga y monitorea el árbol de archivos, y el gancho `useTree`, que intercepta el proceso de carga del módulo, agregando un número de versión a las URL para la invalidación de caché. La construcción de un árbol de dependencias garantiza que, cuando un módulo dependiente cambia, el módulo padre también se actualiza, lo que resulta en un HMR eficiente y evita la reevaluación de todo el árbol de módulos.

Desarrollo Carga de Módulos