Sicher, es ist willkürlich, aber es ist ein wenig lächerlich, discourse_theme aus einem lokalen Klon von Discourse ausführen zu müssen, wenn die zu testende Discourse-Instanz nicht die lokale Instanz ist.
Wie auch immer, ich habe wie von Ihnen vorgeschlagen sowohl in einem frischen GitHub Codespace als auch in meiner eigenen Entwicklungsumgebung Folgendes getan, und es treten immer noch dieselben Fehler auf.
Wenn ich das gesamte Protokoll (oder alle, die in den Terminalverlauf passen) durchlese, sind alle Verzeichnisse, bei denen ein Fehler auftritt, /node_modules/.pnpm. Beim Testen und Ausführen von discourse_theme gegen eine andere TC, die noch nicht auf pnpm anstelle von yarn aktualisiert wurde, sehe ich keine Fehler. Daher bin ich mir fast zu 100 % sicher, dass das Problem darin liegt, dass .pnpm beobachtet wird.
Von Symlinked `node_modules` structure | pnpm sieht es so aus, als ob die normale Struktur von node_modules erhalten bleibt, indem der gesamte tatsächliche Code in /node_modules/.pnpm verschoben wird und die übrigen Verzeichnisse in /node_modules/ nur Symlinks zu .pnpm sind. Das Ignorieren von .pnpm vermeidet also den Fehler „Verzeichnis wird bereits überwacht!“.
Ich habe ein wenig mit dem discourse_theme-Gem gespielt und listener.ignore /node_modules\\/\\.pnpm/ zu watcher.rb hinzugefügt, und es scheint ohne Fehlermeldungen gut zu funktionieren. Es hat sogar eine Neuinstallation eines pnpm-Pakets erkannt.