使用Webpack将Wasm + JS文件捆绑为一个

时间:2019-06-03 21:16:36

标签: javascript webpack emscripten webassembly

我目前正在使用Emscripten将我们的C ++代码编译为Wasm。通过这样做,我输出了两个文件* .js和* .wasm。稍后,我将使用我们的实现,在将我们引向3个文件的基础上,编写更多Javascript代码:

 index.js
 wasmFile.js
 wasmFile.wasm

我正在尝试使用webpack创建一个文件,该文件将在构建时而不是在运行时通过以下代码打包所有内容:

function loadScript(url = "wasmFile.js") {
    var script = document.createElement( "script" );
    script.src = url;
    document.getElementsByTagName( "head" )[0].appendChild( script );
    await new Promise<void>((res) => {
        Module.onRuntimeInitialized = () => res();
    });
}

我研究了https://github.com/ballercat/wasm-loader,但是,似乎我需要为我的所有功能创建一个WebAssembly.Instance-Wasm文件具有很多功能来为每个功能创建一个实例。

这是我们当前的WebPack配置的外观:

module.exports = {
    entry: './src/index.ts',
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                use: 'ts-loader',
                exclude: /node_modules/
            },
            {
                test: /\.ts$/,
                enforce: 'pre',
                loader: 'tslint-loader',
                options: {
                    emitErrors: true
                }
            }
        ]
    },
    resolve: {
        extensions: ['.tsx', '.ts', '.js']
    },
    output: {
        filename: 'index.js',
        path: path.resolve(__dirname, 'dist')
    }
};

在这方面我们缺少什么吗?或我可以用来完成此任务的另一个软件包?任何帮助都会很棒。

谢谢!

0 个答案:

没有答案