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.

Leia mais
Desenvolvimento Carregamento de Módulos

Usando ganchos de módulos Node para desenvolvimento front-end ultrarrápido

2025-05-07

Para acelerar o desenvolvimento front-end, o autor criou uma série de ganchos de módulos Node ortogonais. Um carregador de módulos transforma JSX em JS, outro remapeia as importações, outro procura por arquivos .{ts,tsx,jsx} quando não encontra .js, e um último funciona com o FileTree, usando a invalidação de cache de string de consulta para carregar a versão mais recente dos arquivos. Os eventos de atualização do FileTree acionam reconstruções do front-end, com controle de versão de módulos garantindo que os módulos sejam reexecutados apenas se suas dependências mudarem, preservando o estado de tempo de execução e evitando reiniciar todo o processo.

Leia mais
Desenvolvimento Ganchos de Módulos