Объедините файл Wasm + JS в один с помощью веб-пакета - PullRequest
0 голосов
/ 04 июня 2019

В настоящее время я использую Emscripten для компиляции нашего кода C ++ в Wasm. Таким образом я вывожу два файла * .js и * .wasm. Позже я использую нашу реализацию, чтобы написать больше кода Javascript поверх того, что приводит нас к 3 файлам:

 index.js
 wasmFile.js
 wasmFile.wasm

Я пытаюсь использовать веб-пакет для создания одного файла, который будет упаковывать все во время сборки, а не во время выполнения с этим фрагментом кода:

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')
    }
};

Есть что-то, чего нам не хватает в этом? Или другой пакет, который я мог бы использовать для достижения этой цели? Любая помощь будет прекрасна.

Спасибо!

...