Cheerp извлекает wasm-файл разными способами в зависимости от среды.
Поддерживаемые среды: браузер, node.js, d8 и js.
Среды узлов предполагают, что есть модуль path
для чтения wasm из файловой системы.
Похоже, что он недоступен в вашей среде.
Мы планируем обеспечить большую гибкость при передаче файла wasm в в будущем, но сделать это в общем случае - непростая задача.
А пока я могу предложить обходной путь.
Это текущее определение функции, которая извлекает wasm :
function fetchBuffer(p){
var b=null,f='function';
if(typeof fetch===f)b=fetch(p).then(r=>r.arrayBuffer());
else if(typeof require===f){
p=require('path').join(__dirname, p);
b=new Promise((y,n)=>{
require('fs').readFile(p,(e,d)=>{
if(e)n(e);
else y(d);
});
});
}else b=new Promise((y,n)=>{
y(read(p,'binary'));
});
return b;
}
Как видите, сначала он пытается использовать функцию fetch
, если она доступна.
Поскольку в вашей среде она кажется неопределенной, вы можете определить ее самостоятельно перед cheerp code и реализуйте его, используя свой require("mycode.wasm")
.
Пример (не проверено):
function fetch(path) {
return new Promise((y,n)=> {
let ret = {
arrayBuffer: () => {
return require("mycode.wasm");
}
};
y(ret);
});
}