小编The*_*wth的帖子

如何让 webpack 嵌入我的 *.wasm 以在网络工作者中使用?

我有一些 Rust 代码,可以使用wasm-pack和编译为 Web 程序集wasm-bindgen。我想从网络工作集/工作人员调用此代码。整个应用程序最终应该只是一个 *.js 文件,其他所有内容都内联。

这就是我想象的构建过程:

  1. 用于wasm-pack将 Rust 代码编译为 *.wasm 和 *.js 绑定(此步骤效果很好)
  2. 用于webpack构建一个独立的 *.js 文件,我可以将其作为工作集/工作线程加载。*.wasm 必须包含在此文件中。(这一步失败)
  3. 再次使用webpack来构建我的最终应用程序/包,内联步骤 2 中的工作集/工作文件。(此步骤效果很好)

我的问题出在步骤 2 中:我无法将webpack*.wasm 内联到 worklet/worker 文件中。我在我的 webpack 配置中尝试了这个:

entry: {
    worker: {
        import: './src/worker.ts',
        filename: '../lib/worker.js',
    }
},

// ...

module: {
    rules: [
    
        // ...

        {
            test: /\.wasm$/,
            // 1st option: type: 'webassembly/sync',
            // 2nd option: type: 'asset/inline',
        },

        // ...

    ],
},
Run Code Online (Sandbox Code Playgroud)

无论我做什么,webpack …

webpack webassembly wasm-bindgen wasm-pack webpack-5

11
推荐指数
1
解决办法
1万
查看次数