Сборка ESM и CommonJS JavaScript в компонент темы

Недавно я опубликовал компонент темы:

Он выполняет ESM-импорт npm-пакета extract-timestamp, который был создан с помощью boundation. Этот инструмент генерирует версию CommonJS для Node.js и версию ESM для браузеров.

JavaScript-файл компонента темы source/index.js импортирует зависимость extract-timestamp следующим образом:

Для преобразования файла source/index.js, содержащего логику нашей темы, в файл common/header.html для Discourse используется скрипт build.bash:

Запуск осуществляется командой bash ./build.bash или, если вы используете npm-скрипты, через npm run build:

В результате получается файл common/header.html, упакованный в единый файл (с объединением всех импортов):

Это может быть полезно другим разработчикам, создающим собственные компоненты тем.

В будущем я, вероятно, добавлю в boundation полноценную поддержку создания компонентов тем для Discourse, чтобы автоматизировать этот процесс.

3 лайка