Ситуация
Мы хотим добавить эту внешнюю библиотеку logging JS в наш экземпляр Discourse, чтобы улучшить процесс отладки, используя этот легковесный обертку для логирования, которая позволяет, например, устанавливать уровень логирования через log.setLevel('debug').
Эта внешняя библиотека должна быть доступна во всех наших пользовательских плагинах, темах и компонентах тем, установленных в нашем приложении.
Реализация
• Приведет ли импорт JS через register_asset в различных плагинах к многократной загрузке файла JS?
• Существует ли альтернативная JS-библиотека с аналогичным функционалом после того, как Ember устарела свой утилиту логирования в пользу console.log?
Мы в настоящее время пошли по следующему пути для реализации этого:
- Установить плагин, который импортирует внешний JS и делает библиотеку доступной через объект
window(window.log = log).
• Импортировать JS-библиотеку только один раз.
• Другие плагины/темы/компоненты тем будут зависеть от этого плагина, и такие вещи, как плагины с открытым исходным кодом, заставят пользователей устанавливать оба плагина.
Имеет ли это смысл, или вы предложите другой подход?