Adicionando biblioteca JS externa globalmente a todos os Plugins e Temas (Components)

Situação

Queremos adicionar esta biblioteca externa logging JS à nossa Instância do Discourse para melhorar o fluxo de depuração, utilizando esse wrapper de logging leve que nos permite, por exemplo, configurar um nível de log via log.setLevel('debug').

Essa biblioteca externa deve estar disponível em todos os nossos plugins personalizados, Temas e Componentes de Tema instalados em nosso App.

Implementação

• Importar o JS via register_asset em vários Plugins importaria o arquivo JS múltiplas vezes?
• Existe uma biblioteca JS alternativa com funcionalidade semelhante após o Ember ter descontinuado seu utilitário de logging em favor do console.log?

Atualmente, seguimos o caminho abaixo para implementá-lo.

  1. Instalar um Plugin que importa o JS externo e torna a biblioteca JS disponível via objeto window (window.log = log)
    • Importar a biblioteca JS apenas uma vez
    • Outros plugins/Temas/Componentes de Tema dependeriam desse Plugin, e coisas como plugins de código aberto forçariam os usuários a instalar ambos os plugins

Isso faz sentido ou você sugeriria uma abordagem diferente?

Isso parece muito desacoplado para mim… por que não criar um plugin ou componente independente que introduza isso e, em seguida, garantir que você sempre o instale?

Sim, essa foi na verdade a solução que mencionamos que estamos usando atualmente. Ter 1 plugin que importa o JS e outros plugins que o utilizam dependerão de que esse plugin esteja instalado.

Obrigado pela resposta!