Erros de tema do Discourse CLI com node_modules instalados pelo pnpm devido a symlinks

Certamente é arbitrário, mas é um pouco ridículo ter que executar o discourse_theme a partir de um clone local do discourse quando a instância do discourse que está sendo testada não é a instância local.

De qualquer forma, fiz o que você sugeriu, tanto em um codespace recém-criado do github quanto em meu próprio ambiente de desenvolvimento, e ele ainda gera os mesmos erros.


Lendo todo o log (ou todos os que cabem no histórico do terminal), todos os diretórios em que ele está gerando erros são /node_modules/.pnpm. Testando e executando discourse_theme contra um TC diferente que ainda não foi atualizado para usar pnpm em vez de yarn, não vejo nenhum erro, então tenho quase 100% de certeza de que o problema está em observar .pnpm.

De Symlinked `node_modules` structure | pnpm, parece que a estrutura normal do node_modules é preservada movendo todo o código real para /node_modules/.pnpm e os demais diretórios em /node_modules/ são apenas links simbólicos para .pnpm. Portanto, ignorar .pnpm evita o erro “o diretório já está sendo observado!”.

Brinquei um pouco com a gema discourse_theme e adicionei listener.ignore /node_modules\\/\\.pnpm/ ao watcher.rb, e parece funcionar bem sem mensagens de erro. Ele até detectou uma nova instalação de pacote pnpm.