Le plugin Custom Wizard crée sa propre application Ember et réutilise certains des assets du noyau de Discourse.
Pour cela, nous utilisons un fichier JavaScript nommé wizard-custom.js avec des directives Sprockets ciblant des fichiers individuels.
Dans certains cas, nous avions besoin de nombreux fichiers provenant du même dossier et avons longtemps été tentés d’utiliser require_tree, mais malheureusement, cela n’est pas possible pour les raisons suivantes :
- Le fichier
wizard-custom.jsest situé à l’intérieur du plugin, sonload pathest donc différent de celui de Discourse, et nous ne pouvons importer que des fichiers situés dans ceload path. - Sprockets n’autorise pas les chemins absolus lors de l’utilisation de
require_tree.
Résoudre ce problème permettrait également au plugin de moins souvent se briser en raison de modifications dans le noyau de Discourse.
Pour atténuer cela, nous avons créé une directive Sprockets personnalisée appelée require_tree_discourse qui recherche spécifiquement des assets à l’intérieur du dossier Discourse en utilisant des chemins absolus. Voici la PR contenant ce code.
Nous pensons que cela pourrait intéresser les développeurs de Discourse et les développeurs Rails en général.