Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用webpack在web workers中导入wasm?_Javascript_Webpack_Web Worker_Webassembly - Fatal编程技术网

Javascript 如何使用webpack在web workers中导入wasm?

Javascript 如何使用webpack在web workers中导入wasm?,javascript,webpack,web-worker,webassembly,Javascript,Webpack,Web Worker,Webassembly,是否可以使用webpack在workers中导入wasm?在我的普通js代码中,我可以像这样导入wasm: import('../wasm/hello_world.wasm').then(module => { console.log(module.add_one(9)) }) 同一代码在辅助程序中不起作用。它返回以下错误消息: Uncaught TypeError: Cannot read property './src/wasm/hello_world.wasm' of un

是否可以使用webpack在workers中导入wasm?在我的普通js代码中,我可以像这样导入wasm:

import('../wasm/hello_world.wasm').then(module => {
    console.log(module.add_one(9))
})
同一代码在辅助程序中不起作用。它返回以下错误消息:

Uncaught TypeError: Cannot read property './src/wasm/hello_world.wasm' of undefined
我的webpack配置是webpack worker和wasm示例的组合


根据最初的问题和评论,C/Emscripten和Rust编译的WASM似乎都有兴趣解决这个问题

我发现下面的文章很好地解释了如何实现Emscripten生成的wasm的结果:

至于Rust,我本打算提出自己的解决方案,并提供一个github回购协议作为我的答案,但在我的研究过程中,我发现这个开发人员已经很好地解决了这个问题,并向我们提供了一个现成的模板

谢谢维克多·加夫里什

README.md中的步骤有点过时。我能够通过执行以下操作来构建和运行该项目:

本地克隆回购并执行:

cd rust-wasm-worker-template/www
npm install
npm run build
npm run start
一旦webpack完成捆绑所有内容,开发人员站点将从控制台上提供的URL可用


一般来说,重要的是要记住网络工作者的局限性。没有对dom或控制台的直接访问,您必须处理从工作线程到主线程的消息传递,然后输出到控制台。我特别提到这一点是因为OP使用了一个名为console.log的示例

我也一直在讨论这个问题!特别是当使用bindgen。。。