Вы можете использовать loadScript() для загрузки JS, даже если предоставленный URL является внешним. Использование внешних сервисов, таких как jsdelivr, должно работать с этим.
import loadScript from "discourse/lib/load-script";
...
loadScript(URL).then(() => {
// ваш код
})
Хотя я не тестировал это extensively, динамический импорт также должен работать.
async function load() {
const {
default: myDefault,
foo,
bar,
} = await import(URL);
// остальной код
}
Стоит отметить, что, вероятно, безопаснее сохранять файлы NPM напрямую в ваш код, вместо того чтобы полагаться на внешний CDN, в зависимости от того, насколько критичен JS. Аналогично, вам может потребоваться выполнить некоторую сборку и предварительную обработку, прежде чем использовать его в браузере.
Что касается того, будет ли Immer работать с Discourse, я не знаю.