How to ship javascript library with plugin?

¡Gracias, eso es muy útil! Poner mi biblioteca en la carpeta assets/lib me está ayudando mucho.

Ahora que tengo la ruta correcta, la biblioteca se está comportando mal. :man_facepalming: Es una biblioteca grande con muchos submódulos; argdown.js requiere ArgdownApplication.js y varios otros. Cuando intenta cargar ArgdownApplication.js, dice “Uncaught ReferenceError: exports is not defined”.

He intentado empaquetar todo en un solo archivo usando Webpack, pero por alguna razón, el paquete no incluye una biblioteca de terceros llamada “punycode”. He probado agregando punycode al módulo compilado, he intentado subirlo a la carpeta lib y agregar register_asset 'lib/punycode.js' a plugin.rb, pero no he tenido mucho éxito.

La biblioteca funciona en mi computadora y en otro plugin que he escrito. ¿Hay alguna forma recomendada de agregar un módulo NPM a un plugin de Discourse? Este hilo dice que copies la carpeta del módulo en tu carpeta /lib/; eso no me está funcionando.* ¿Podrías indicarme un ejemplo de alguien que haya enviado con éxito un módulo NPM complejo con un plugin de Discourse para que pueda ver qué estoy haciendo mal?

*En ese hilo están intentando cargar el módulo remotamente desde unpkg.com; preferiría hacerlo localmente, aunque quizás debería probar eso.