How to ship javascript library with plugin?

Merci, c’est très utile ! Le fait de placer ma bibliothèque dans le dossier assets/lib m’aide beaucoup.

Maintenant que j’ai le bon chemin vers elle, la bibliothèque se comporte mal. :man_facepalming: C’est une grosse bibliothèque avec de nombreux sous-modules : argdown.js nécessite ArgdownApplication.js et plusieurs autres. Lorsqu’il tente de charger ArgdownApplication.js, il affiche : “Uncaught ReferenceError: exports is not defined”.

J’ai essayé de tout regrouper dans un seul fichier avec Webpack, mais pour une raison inconnue, le bundle manque d’une bibliothèque tierce appelée “punycode”. J’ai essayé d’ajouter punycode dans le module compilé, j’ai essayé de le télécharger dans le dossier lib et d’ajouter register_asset 'lib/punycode.js' dans plugin.rb, mais je n’arrive pas à y parvenir.

La bibliothèque fonctionne sur mon ordinateur et dans un autre plugin que j’ai écrit. Y a-t-il une méthode recommandée pour ajouter un module NPM à un plugin Discourse ? Ce fil de discussion indique de copier le dossier du module dans votre dossier /lib/ ; cela ne fonctionne pas pour moi.* Pourriez-vous me montrer un exemple de quelqu’un ayant réussi à intégrer un module NPM complexe avec un plugin Discourse afin que je puisse voir ce que je fais mal ?

*Dans ce fil, ils essaient de charger le module à distance depuis unpkg.com ; je préférerais le faire localement, bien que je devrais peut-être essayer cela.

1 « J'aime »