Я пытался это и это с моим модулем, но они не работали, поэтому попытался поместить файл wasm непосредственно в папку publi c и извлечь его оттуда (см. также: это ). Требовалась некоторая настройка c для варианта использования модуля wasm (настройки памяти и т. Д. c). Мой конкретный c случай теперь выглядит следующим образом
componentDidMount() {
this.loadWasm();
}
loadWasm() {
const path = process.env.PUBLIC_URL + '/my-library.wasm';
const importObject = {
env: {
memoryBase: 0,
tableBase: 0,
memory: new WebAssembly.Memory({initial: 256, maximum: 1024}),
table: new WebAssembly.Table({initial: 256, element: 'anyfunc'}),
__assert_fail: function() {
// todo
},
emscripten_resize_heap: function() {
// todo
},
emscripten_memcpy_big: function() {
// todo
},
setTempRet0: function() {
// todo
}
}
};
WebAssembly.instantiateStreaming(fetch(path), importObject).then(obj => {
// do stuff
});
}
РЕДАКТИРОВАТЬ
При получении wasm из * 1021 я получил ошибку числа magi c * Обертка (egaout. js) из-за проблемы маршрутизации с реакцией. В конце концов, я решил, что было бы проще включить javascript в качестве зависимости в файле индекса. html. Преимущество этого заключается в том, что вам не нужно связываться с webpack и webpack, а не связываться с em cc-Generated js. Кроме того, не загружая модуль wasm напрямую, em cc -генерированный js позаботится о настройке importObject
.