Изменение отслеживания компонентов Glimmer не работает: мутация свойств в массиве @tracked

Вы можете использовать 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, я не знаю.