A simple tool to use ESM modules in a CommonJS environment.
npm i @mateonunez/modulo
const Modulo = require("@mateonunez/modulo");
const myEsmModule = await Modulo({ path: "./my-esm-module.mjs" });
const result = myEsmModule();
const Modulo = require("@mateonunez/modulo");
const { namedExportVar, namedExportFunc } = await Modulo({
path: "./my-esm-module.mjs",
});
console.log(namedExportVar);
const result = namedExportFunc();
import Modulo from "@mateonunez/modulo";
import * as originalEsmModule from "esm-module";
const myEsmModule = await Modulo<typeof originalEsmModule>({
path: "./my-esm-module.mjs",
});
const result = myEsmModule();
const modulo = require("@mateonunez/modulo");
const myEsmModule = await modulo({ path: "./my-esm-module.mjs" }).catch(
(err) => {
console.error(err);
}
);
Note: if your ESM module exports a default export and named exports, you can use only the default export.