Ajouter une bibliothèque JS externe globalement à tous les plugins et thèmes (composants)

Situation

Nous souhaitons ajouter cette bibliothèque externe logging JS à notre instance Discourse afin d’améliorer le flux de débogage en utilisant ce léger wrapper de journalisation qui nous permet, par exemple, de définir un niveau de journalisation via log.setLevel('debug').

Cette bibliothèque externe doit être disponible dans tous nos plugins personnalisés, thèmes et composants de thème installés sur notre application.

Implémentation

• L’importation du JS via register_asset dans divers plugins entraînerait-elle l’importation multiple du fichier JS ?
• Existe-t-il une bibliothèque JS alternative avec des fonctionnalités similaires depuis que Ember a déprécié son utilitaire de journalisation en faveur de console.log ?

Nous avons actuellement emprunté la voie suivante pour l’implémenter :

  1. Installer un plugin qui importe le JS externe et rend la bibliothèque JS disponible via l’objet global (window.log = log).
    • Importer la bibliothèque JS une seule fois.
    • Les autres plugins/thèmes/composants de thème dépendraient de ce plugin, et des plugins open source obligeraient les utilisateurs à installer les deux plugins.

Cela a-t-il du sens ou suggéreriez-vous une approche différente ?

Cela me semble très découplé… pourquoi ne pas créer un plugin ou un composant autonome qui l’introduit, puis veiller simplement à toujours l’installer ?

2 « J'aime »

Oui, c’était en fait la solution que j’ai mentionnée que nous utilisons actuellement. Avoir un seul plugin qui importe le JS et d’autres plugins qui l’utilisent dépendront de ce plugin pour être installé.

Merci pour ta réponse !

2 « J'aime »