我的设置:
Angular:12.2
Wasm:使用 wasm-pack (target: bundler)
ngExpress 构建,用于预渲染
例子:
问题:
我尝试将预渲染添加到我现有的应用程序中。所以我添加了带有预渲染的角度通用(我已经在多个其他项目中使用过,但没有与 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 和类型支持。