Das Custom-Wizard-Plugin erstellt seine eigene Ember-App und nutzt einige der Assets aus dem Discourse-Kern.
Dafür verwenden wir eine JS-Datei namens wizard-custom.js mit Sprockets-Direktiven, die auf einzelne Dateien abzielen.
In einigen Fällen benötigen wir viele Dateien aus demselben Ordner und waren lange versucht, require_tree zu verwenden, was jedoch aus folgenden Gründen leider nicht möglich ist:
- Die Datei
wizard-custom.jsbefindet sich innerhalb des Plugins, sodass ihrload pathsich von dem von Discourse unterscheidet und wir nur Dateien innerhalb desload patheinbinden können. - Sprockets erlaubt keine absoluten Pfade bei der Verwendung von
require_tree.
Eine Lösung dafür würde auch bedeuten, dass das Plugin aufgrund von Änderungen im Discourse-Kern seltener fehlschlägt.
Um dies zu umgehen, haben wir eine benutzerdefinierte Sprockets-Direktive namens require_tree_discourse erstellt, die speziell nach Assets im Discourse-Ordner unter Verwendung absoluter Pfade sucht. Hier ist der PR, der diesen Code enthält.
Ich dachte, das könnte für Discourse-Entwickler und Rails-Entwickler im Allgemeinen interessant sein.