Journal de l'alternant : Comment j'ai perdu mes dépendances pnpm
En arrivant chez Bedrock Streaming en alternance, l’une de mes premières missions a été de participer à la migration de notre gestionnaire de dépendances vers pnpm. Sur le papier, tout semblait simple : pnpm est rapide, économe en espace disque, et de plus en plus adopté dans l’écosystème JavaScript. En pratique, la migration a révélé des comportements inattendus dans notre monorepo, et m’a appris quelques leçons que je n’aurais pas devinées en lisant uniquement la documentation.
Le problème central venait du strict mode de résolution de pnpm : contrairement à npm ou yarn, pnpm n’autorise pas l’accès à des packages qui ne sont pas explicitement déclarés dans le package.json du workspace courant. Des dépendances fantômes — c’est-à-dire des packages utilisés implicitement parce qu’ils étaient installés par une dépendance parente — se sont retrouvées inaccessibles du jour au lendemain. Le build cassait en silencieux dans certains contextes CI, mais pas en local, ce qui a rendu le débogage particulièrement pénible.
Ce retour d’expérience détaille comment nous avons identifié les coupables, automatisé une partie des corrections, et mis en place des garde-fous pour éviter que la situation ne se reproduise.