您可以使用 loadScript() 来加载 JS,即使提供的 URL 是外部 URL。使用 jsdelivr 等外部服务应该也可以。
import loadScript from "discourse/lib/load-script";
...
loadScript(URL).then(() => {
// your code
})
虽然我没有广泛测试过,但动态导入也应该可以工作。
async function load() {
const {
default: myDefault,
foo,
bar,
} = await import(URL);
// rest of code
}
我应该指出,将 NPM 文件直接保存在您的代码中可能比依赖外部 CDN 更安全,具体取决于 JS 的关键程度。同样,您可能需要在浏览器中使用它之前进行一些打包和预处理。
至于 Immer 是否能与 discourse 一起使用,我不知道。