How to ship javascript library with plugin?

Спасибо, это очень помогло! Размещение моей библиотеки в папке assets/lib значительно облегчило задачу.

Теперь, когда у меня правильный путь к ней, библиотека ведёт себя странно. :man_facepalming: Это большая библиотека с множеством подмодулей — argdown.js требует ArgdownApplication.js и ещё несколько других. Когда она пытается загрузить ArgdownApplication.js, выводится ошибка: “Uncaught ReferenceError: exports is not defined”.

Я пробовал собрать всё в один файл с помощью Webpack, но по какой-то причине в сборке отсутствует сторонняя библиотека под названием “punycode”. Я пытался добавить punycode в скомпилированный модуль, загрузить его в папку lib и добавить register_asset 'lib/punycode.js' в файл plugin.rb, но пока без особого успеха.

Библиотека работает на моём компьютере и в другом плагине, который я написал. Есть ли рекомендуемый способ добавления NPM-модуля в плагин Discourse? В этой теме предлагается скопировать папку модуля в папку /lib/, но у меня это не работает.* Можете ли вы показать пример успешного использования сложного NPM-модуля в плагине Discourse, чтобы я мог понять, где ошибаюсь?

*В той теме они пытаются загрузить модуль удалённо с unpkg.com; я бы предпочел сделать это локально, хотя, возможно, стоит попробовать и этот вариант.