Il effectue une importation ESM du package npm extract-timestmap, qui a été généré à l’aide de boundation. Ce dernier produit une édition CommonJS pour Node.js et une édition ESM pour les navigateurs.
Le fichier JavaScript du composant de thème source/index.js importe la dépendance extract-timestamp comme suit :
Il utilise ensuite le fichier build.bash pour transformer le fichier source/index.js, qui contient la logique de notre composant de thème, en un fichier common/header.html destiné à Discourse :
Ce processus est lancé en exécutant bash ./build.bash ou, si vous utilisez un flux de travail avec des scripts npm, via npm run build, comme indiqué ici :
Le résultat est un fichier common/header.html qui regroupe toutes les importations précédentes en un seul fichier (bundling) :
Cela pourrait s’avérer utile pour d’autres développeurs créant leurs propres composants de thème.
Je prévois probablement d’ajouter un support de génération (scaffolding) de premier ordre pour les composants de thème Discourse dans boundation à un stade ultérieur, afin d’automatiser ce guide.