Добавление внешней JS-библиотеки глобально ко всем плагинам и темам (компоненты)

Ситуация

Мы хотим добавить эту внешнюю библиотеку logging JS в наш экземпляр Discourse, чтобы улучшить процесс отладки, используя этот легковесный обертку для логирования, которая позволяет, например, устанавливать уровень логирования через log.setLevel('debug').

Эта внешняя библиотека должна быть доступна во всех наших пользовательских плагинах, темах и компонентах тем, установленных в нашем приложении.

Реализация

• Приведет ли импорт JS через register_asset в различных плагинах к многократной загрузке файла JS?
• Существует ли альтернативная JS-библиотека с аналогичным функционалом после того, как Ember устарела свой утилиту логирования в пользу console.log?

Мы в настоящее время пошли по следующему пути для реализации этого:

  1. Установить плагин, который импортирует внешний JS и делает библиотеку доступной через объект window (window.log = log).
    • Импортировать JS-библиотеку только один раз.
    • Другие плагины/темы/компоненты тем будут зависеть от этого плагина, и такие вещи, как плагины с открытым исходным кодом, заставят пользователей устанавливать оба плагина.

Имеет ли это смысл, или вы предложите другой подход?

Мне это кажется очень развязанным… почему бы не создать отдельный плагин или компонент, который внедряет это, и просто убедиться, что вы всегда его устанавливаете?

Да, это было именно то решение, о котором я упоминал, что мы используем в настоящее время. Есть один плагин, который импортирует JS, а другие плагины, использующие его, будут зависеть от того, установлен ли этот плагин.

Спасибо за ответ!