How to ship javascript library with plugin?

Grazie, è molto utile! Inserire la mia cartella lib nella directory assets/lib mi sta aiutando molto.

Ora che ho il percorso corretto, la libreria si comporta in modo errato. :man_facepalming: È una libreria di grandi dimensioni con molti sottomoduli: argdown.js richiede ArgdownApplication.js e molte altre. Quando tenta di caricare ArgdownApplication.js, restituisce l’errore “Uncaught ReferenceError: exports is not defined”.

Ho provato a raggruppare tutto in un unico file usando Webpack, ma per qualche motivo il bundle manca di una libreria di terze parti chiamata “punycode”. Ho provato ad aggiungere punycode nel modulo compilato, ho provato a caricarlo nella cartella lib e ad aggiungere register_asset 'lib/punycode.js' a plugin.rb, ma non sto avendo molto successo.

La libreria funziona sul mio computer e in un altro plugin che ho scritto. Esiste un metodo consigliato per aggiungere un modulo NPM a un plugin Discourse? Questa discussione suggerisce di copiare la cartella del modulo nella tua directory /lib/; questo non sta funzionando per me.* Puoi indicarmi un esempio di qualcuno che ha distribuito con successo un modulo NPM complesso con un plugin Discourse, così posso vedere cosa sto facendo male?

*In quella discussione stanno cercando di caricare il modulo da remoto da unpkg.com; preferirei farlo in locale, anche se forse dovrei provare anche quella strada.

1 Mi Piace