Skip to content

dotnet.wasm in node.js looks for module called 'a' and fails #41861

Closed
@am11

Description

@am11

dotnet.wasm module does not load cleanly in the node.js environment. It complains about a missing package 'a'.

Repro:

$ node -v
v14.9.0

$ cat > test.mjs << EOF
import * as dotnet from '/Users/am11/.nuget/packages//microsoft.netcore.app.runtime.browser-wasm/5.0.0-rc.1.20425.18/runtimes/browser-wasm/native/dotnet.wasm';

const listMethods = subject => Object.getOwnPropertyNames(subject).filter(item => typeof subject[item] === 'function');

console.log(listMethods(dotnet));
EOF

$ node --experimental-modules --experimental-wasm-modules test.mjs
internal/process/esm_loader.js:74
    internalBinding('errors').triggerUncaughtException(
                              ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'a' imported from /Users/am11/.nuget/packages/microsoft.netcore.app.runtime.browser-wasm/5.0.0-rc.1.20425.18/runtimes/browser-wasm/native/dotnet.wasm
    at packageResolve (internal/modules/esm/resolve.js:623:9)
    at moduleResolve (internal/modules/esm/resolve.js:664:18)
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:778:11)
    at Loader.resolve (internal/modules/esm/loader.js:85:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:229:28)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:51:40)
    at link (internal/modules/esm/module_job.js:50:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

Similar error about module 'a' occurs if we try WebAssembly.instantiate API:

$ cat > test2.mjs << EOF
import * as fs from 'fs';

const name = '/Users/am11/.nuget/packages//microsoft.netcore.app.runtime.browser-wasm/5.0.0-rc.1.20425.18/runtimes/browser-wasm/native/dotnet.wasm'
const bytes = fs.readFileSync(name);
const result =  WebAssembly.instantiate(bytes, {
  imports: { imported_func: arg => console.log(arg) }
}).catch(err => console.error(err));
EOF

$ node --experimental-modules --experimental-wasm-modules test2.mjs
[TypeError: WebAssembly.instantiate(): Import #0 module="a" error: module is not an object or function]

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions