0

我的设置:

Angular:12.2
Wasm:使用 wasm-pack (target: bundler)
ngExpress 构建,用于预渲染

例子:

Github 示例代码

问题:

我尝试将预渲染添加到我现有的应用程序中。所以我添加了带有预渲染的角度通用(我已经在多个其他项目中使用过,但没有与 wasm 结合使用)。可悲的是,我在预渲染路线时收到以下错误:

renderModule 不是函数

对于应用程序(没有预渲染),我正在加载 wasm 异步。在引导应用程序之前在我的main.ts中。(因为我需要在多个地方使用 wasm 并且已经在应用启动)

main.ts

 import("my-wasm")
        .then(_ => import('./app/app.module'))
        .then((app) => platformBrowserDynamic().bootstrapModule(app.AppModule))
        .catch((err) => console.error(err));

当我使用 wasm 的导出函数/对象时会发生错误,即使它们在预渲染期间没有执行/使用。如果代码中存在函数调用就足够了。

我猜预渲染错误的发生是因为之前没有加载 wasm,就像我在main.ts中为普通应用程序所做的那样。

是否有可能使用 ngExpressEngine 异步引导AppServerModule ?还是我错过了什么?

顺便提一句。当我将wasm直接加载到我需要它的地方时它正在工作(这对我来说不是一个选项,或者我必须更改工作代码只是为了预渲染):

const myWasm = await import('my-wasm');
const dummy = new myWasm.MyObject();

我期待着所有的想法。谢谢

PS:构建 wasmweb / standalone并添加它不是一个选项,因为我想要 webpack 和类型支持。

4

0 回答 0