Retour à la leçon
Mission

Mission : le compteur partagé qui ne se synchronise plus

Diagnostiquer une confusion entre binding live ESM et copie de valeur CommonJS, puis migrer un module vers le lazy-loading.

Contexte

Un développeur de Technologik migre un module compteur.js de CommonJS vers ES Modules :

js
// compteur.mjs
export let compte = 0;
export function incrementer() { compte++; }

// main.mjs
import { compte, incrementer } from "./compteur.mjs";
console.log(compte); // 0
incrementer();
console.log(compte); // il s'attend a 0, un collegue s'attend a 1

Une discussion éclate dans l'équipe sur ce que ce second console.log doit afficher. Il faut aussi ajouter un chargement paresseux d'un widget avancé, uniquement si un élément #widget-avance est présent sur la page.