Cuando uso await import(module) dentro de Docker, el módulo es solo un objeto vacío. Fuera de la ventana acoplable, todo funciona según lo previsto.
Nodo: v16.13.1
Docker: Docker versión 20.10.7, compilación f0df350
Imagen: nodo: 16
El código:
import path from "path"; export const WorkerLoader = async () => { // import Worker from the public directory => copied from docker const here = "file://" + path.resolve("./worker/worker.js"); // worker.wasm.js & worker.wasm don't work in node const WorkerModule = await import(here); WorkerModule().then(callback); // no, its not a promise } Si registro WorkerModule obtengo [Module: null prototype] { } . También intenté hacerlo con WorkerModule.default pero esto no está undefined .
No puedo simplemente cambiar el código a una importación normal porque necesita que esas funciones exactas estén presentes debido a una base de código compartido para web y nodejs, donde uso module-alias para hacer mis propias implementaciones de módulos, que fueron diseñados para la web
Editar: el archivo worker.js tiene al final
if (typeof exports === 'object' && typeof module === 'object') module.exports = Worker; else if (typeof define === 'function' && define['amd']) define([], function() { return Worker; }); else if (typeof exports === 'object') exports["Worker"] = Worker;