Bündeln Sie ESM & CommonJS JavaScript zu einer Theme-Komponente

Ich habe kürzlich die Theme-Komponente veröffentlicht:

Diese führt ein ESM-Import des npm-Pakets extract-timestmap durch, das mit boundation erstellt wurde. Dieses generiert eine CommonJS-Version für Node.js und eine ESM-Version für Browser.

Das Theme-Komponenten-JavaScript source/index.js importiert die Abhängigkeit extract-timestamp wie folgt:

Dies verwendet die Datei build.bash, um die Datei source/index.js, die unsere Theme-Komponenten-Logik enthält, in eine common/header.html für Discourse zu verwandeln:

Dies wird ausgeführt, indem man bash ./build.bash eingibt oder, wenn man einen npm-Skripte-Workflow verwendet, über npm run build mit:

Das Ergebnis ist eine common/header.html-Datei, die in eine einzige Datei verpackt wird (die Imports von früher werden gebündelt):

Dies könnte für andere nützlich sein, die ihre eigenen Theme-Komponenten entwickeln.

Ich werde wahrscheinlich später eine erstklassige Scaffolding-Unterstützung für Discourse-Theme-Komponenten in boundation hinzufügen, um diesen Leitfaden zu automatisieren.

3 „Gefällt mir“