Certes, c’est arbitraire, mais il est un peu ridicule de devoir exécuter le discourse_theme à partir d’un clone local de discourse alors que l’instance de discourse testée n’est pas l’instance locale.
Quoi qu’il en soit, j’ai fait ce que vous avez suggéré, à la fois dans un nouveau codespace GitHub et dans mon propre environnement de développement, et cela génère toujours les mêmes erreurs.
En lisant l’intégralité du journal (ou tout ce qui rentre dans l’historique du terminal), tous les répertoires sur lesquels il y a une erreur sont /node_modules/.pnpm. En testant et en exécutant discourse_theme contre un autre TC qui n’a pas encore été mis à jour pour utiliser pnpm au lieu de yarn, je ne vois aucune erreur, donc je suis presque certain à 100 % que le problème vient de la surveillance de .pnpm.
D’après Symlinked `node_modules` structure | pnpm, la structure normale de node_modules est préservée en déplaçant tout le code réel dans /node_modules/.pnpm et les autres répertoires dans /node_modules/ ne sont que des liens symboliques vers .pnpm. Ignorer .pnpm évite donc l’erreur « le répertoire est déjà surveillé ! ».
J’ai un peu joué avec le gem discourse_theme et j’ai ajouté listener.ignore /node_modules\\/\\.pnpm/ au watcher.rb, et cela semble fonctionner correctement sans aucun message d’erreur. Il a même détecté une nouvelle installation de package pnpm.