我在webpack@4.43.0
上,正在尝试使用此web程序集库https://github.com/vislyhq/stretch根据文档,我正在从中导入一些类,即
import { Allocator, Node } from 'stretch-layout';
class Base {
public layoutNode;
public constructor() {
this.layoutNode = new Node(allocator, {});
}
}
然而,当我试图用webpack构建它时(不使用任何加载程序,并且我的resolve.extensions
webpack配置中有.wasm
(,我得到了以下错误
WebAssembly模块包含在初始区块中。这是不允许的,因为WebAssembly下载和编译必须异步进行。在您的入口点和WebAssembly模块:
据我所知,我需要对此模块使用import()
,但我如何使这些导入对我的类可用?应用程序将失败,因为我们需要等待导入?如果我这样做,我会得到一个错误,说Allocator
和Node
不是构造函数。
let Allocator: any = null;
let Node: any = null;
import('stretch-layout').then(module => {
Allocator = module.Allocator;
Node = module.Node;
});
我使用webpack 5的最新测试版,通过添加以下实验标志来配置,解决了这个问题
experiments: {
asyncWebAssembly: true,
importAsync: true
}
这样,您就不必担心中的任何异步import()
语句