Discourse Theme CLI выдает ошибки при установленных через pnpm node_modules из-за символических ссылок

Конечно, это произвольно, но немного нелепо требовать запускать discourse_theme из локальной копии discourse, когда тестируемый экземпляр discourse не является локальным.

В любом случае, я сделал так, как вы предложили: и в свежем GitHub Codespace, и в своей собственной среде разработки, но всё равно возникают те же ошибки.


Прочитав весь лог (или все записи, которые помещаются в историю терминала), я заметил, что все ошибки возникают в директории /node_modules/.pnpm. При тестировании и запуске discourse_theme против другого TC, который ещё не обновлён для использования pnpm вместо yarn, я не вижу никаких ошибок. Поэтому я почти на 100% уверен, что проблема в отслеживании .pnpm.

Согласно Symlinked `node_modules` structure | pnpm, обычная структура node_modules сохраняется путём перемещения всего реального кода в /node_modules/.pnpm, а остальные директории в /node_modules/ являются просто символическими ссылками на .pnpm. Таким образом, игнорирование .pnpm позволяет избежать ошибки «директория уже отслеживается!».

Я немного поэкспериментировал с gem discourse_theme и добавил listener.ignore /node_modules\/\.pnpm/ в файл watcher.rb, и это работает без каких-либо сообщений об ошибках. Более того, система даже обнаружила установку нового пакета через pnpm.