正在尝试了解如何通过webpack导入web程序集包



我在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.extensionswebpack配置中有.wasm(,我得到了以下错误

WebAssembly模块包含在初始区块中。这是不允许的,因为WebAssembly下载和编译必须异步进行。在您的入口点和WebAssembly模块:

据我所知,我需要对此模块使用import(),但我如何使这些导入对我的类可用?应用程序将失败,因为我们需要等待导入?如果我这样做,我会得到一个错误,说AllocatorNode不是构造函数。

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()语句

相关内容

  • 没有找到相关文章

最新更新