Externes JS-Bibliothek global für alle Plugins und Themes (Komponenten) hinzufügen

Situation

Wir möchten diese externe logging JS-Bibliothek zu unserer Discourse-Instanz hinzufügen, um den Debugging-Workflow zu verbessern. Dabei nutzen wir diesen leichten Logging-Wrapper, der es uns beispielsweise ermöglicht, ein Log-Level über log.setLevel('debug') festzulegen.

Diese externe Bibliothek sollte in allen unseren benutzerdefinierten Plugins, Themes und Theme-Komponenten verfügbar sein, die auf unserer App installiert sind.

Implementation

• Würde das Importieren des JS über register_asset in verschiedenen Plugins die JS-Datei mehrfach importieren?
• Gibt es eine alternative JS-Bibliothek mit ähnlicher Funktionalität, nachdem Ember sein Logging-Utility abgekündigt hat und stattdessen console.log bevorzugt?

Wir haben uns bisher für folgenden Weg entschieden, um dies zu implementieren:

  1. Ein Plugin installieren, das externes JS importiert und die JS-Bibliothek über das window-Objekt verfügbar macht (window.log = log).
    • Die JS-Bibliothek nur einmal importieren.
    • Andere Plugins/Themes/Theme-Komponenten würden von diesem Plugin abhängen, und Dinge wie Open-Source-Plugins würden Benutzer zwingen, beide Plugins zu installieren.

Ist das sinnvoll, oder würden Sie einen anderen Ansatz empfehlen?

Das wirkt für mich sehr entkoppelt… Warum nicht ein eigenständiges Plugin oder eine Komponente erstellen, die dies einführt, und dann einfach sicherstellen, dass du es immer installierst?

2 „Gefällt mir“

Ja, das war tatsächlich die Lösung, die ich erwähnt habe, die wir derzeit nutzen. Es gibt ein Plugin, das das JavaScript importiert, und andere Plugins, die es verwenden, sind davon abhängig, dass dieses Plugin installiert ist.

Danke für deine Antwort!

2 „Gefällt mir“