HMR nativo no Node.js: Uma imersão técnica

2025-06-04

Este artigo detalha como implementar a substituição de módulo a quente (HMR) nativa no Node.js. Abordagens tradicionais usando sinalizadores `--watch` ou sistemas de módulos virtuais como o Vite são ineficientes e sofrem de isolamento de módulos. O autor utiliza os ganchos de módulo integrados do `node:module` do Node.js para criar um mecanismo de atualização incremental baseado em números de versão de arquivo. O núcleo é a classe `FileTree`, que carrega e monitora a árvore de arquivos, e o gancho `useTree`, que intercepta o processo de carregamento do módulo, adicionando um número de versão às URLs para invalidação de cache. A construção de uma árvore de dependências garante que, quando um módulo dependente muda, o módulo pai também seja atualizado, resultando em um HMR eficiente e evitando a reavaliação de toda a árvore de módulos.

Desenvolvimento Carregamento de Módulos