Vin*_*inh 6 import typescript webpack webassembly
我正在尝试导入一个模块以在通过 webpack 编译的库中使用。尽管加载了模块中的 javascript API,但随附的.wasm文件并未加载,并且会导致任何提及该wasm模块的函数抛出未定义的错误。也有可能是 webpack 干扰了.wasm文件,但我不确定。这是错误。
Uncaught (in promise) TypeError: _index_bg_wasm__WEBPACK_IMPORTED_MODULE_0__.open_image is not a function
at Module.open_image (index_bg.js?0d72:1468)
Run Code Online (Sandbox Code Playgroud)
以及相关的函数调用
import('@silvia-odwyer/photon').then(photon => {
console.log(photon.open_image) // <-- correctly prints function
let ctx = canvas.getContext('2d');
let photonImg = photon.open_image(canvas, ctx); // <-- error
photon.grayscale(photonImg);
photon.putImageData(canvas, ctx, photonImg);
});
Run Code Online (Sandbox Code Playgroud)
我尝试使用wasm-loader,根据this编辑我tsconfig的使用,用javascript而不是打字稿编写,将webpack块数限制为1,以及从文档和在线导入和编译wasm的不同方式esnext
我遇到了这个完全相同的错误,它实际上是因为我双重加载 WASM 文件而发生的。在我的 webpack 配置中,我有 wasm-pack 配置:
config.plugin('wasm-pack')
.use(WasmPackPlugin)
.init(
(Plugin) =>
new Plugin({
crateDirectory: path.resolve(__dirname, './rust_wasm_code'),
forceMode: 'release'
})
)
.end()
Run Code Online (Sandbox Code Playgroud)
以及用于加载 WASM 文件的文件加载代码:
config.module
.rule('wasm')
.test(/.wasm$/)
.use('wasm-loader')
.loader('wasm-loader')
Run Code Online (Sandbox Code Playgroud)
我通过删除第二段代码(并依赖 WASM-pack 来编译和加载)修复了错误。
| 归档时间: |
|
| 查看次数: |
437 次 |
| 最近记录: |