Puoi usare loadScript() per caricare JS, anche se l’URL fornito è un URL esterno. L’uso di servizi esterni come jsdelivr dovrebbe funzionare con questo.
import loadScript from "discourse/lib/load-script";
...
loadScript(URL).then(() => {
// il tuo codice
})
Anche se non l’ho testato approfonditamente, anche un import dinamico dovrebbe funzionare.
async function load() {
const {
default: myDefault,
foo,
bar,
} = await import(URL);
// resto del codice
}
Devo notare che è probabilmente più sicuro salvare i file NPM direttamente nel tuo codice invece di fare affidamento su una CDN esterna, a seconda di quanto sia critico il JS. Allo stesso modo, potresti dover fare un po’ di bundling e pre-elaborazione prima di poterlo utilizzare nel browser.
Per quanto riguarda se Immer funzionerà con discourse, non lo so.