HMR natif dans Node.js : Une plongée technique

2025-06-04

Cet article détaille comment implémenter le remplacement à chaud de modules (HMR) natif dans Node.js. Les approches traditionnelles utilisant les drapeaux `--watch` ou les systèmes de modules virtuels comme Vite sont inefficaces et souffrent d'isolement des modules. L'auteur utilise les hooks de module intégrés `node:module` de Node.js pour créer un mécanisme de mise à jour incrémentale basé sur les numéros de version des fichiers. Le cœur du système est la classe `FileTree`, qui charge et surveille l'arbre de fichiers, et le hook `useTree`, qui intercepte le processus de chargement du module, en ajoutant un numéro de version aux URL pour l'invalidation du cache. La construction d'un arbre de dépendances garantit que lorsqu'un module dépendant change, le module parent est également mis à jour, ce qui entraîne un HMR efficace et évite la réévaluation de l'arbre de modules entier.

Lire plus
Développement Chargement de Modules

Exploitation des hooks de modules Node pour un développement front-end ultra-rapide

2025-05-07

Pour accélérer le développement front-end, l'auteur a créé une série de hooks de modules Node orthogonaux. Un chargeur de modules transforme le JSX en JS, un autre remappe les importations, un autre recherche les fichiers .{ts,tsx,jsx} lorsqu'il ne trouve pas de .js, et un dernier fonctionne avec FileTree, utilisant l'invalidation du cache par chaîne de requête pour charger la dernière version des fichiers. Les événements de mise à jour de FileTree déclenchent des reconstructions du front-end, avec un contrôle de version des modules garantissant que les modules ne sont re-exécutés que si leurs dépendances changent, préservant l'état d'exécution et évitant de redémarrer l'ensemble du processus.

Lire plus
Développement Hooks de Modules