standard-things / esm

Tomorrow's ECMAScript modules today!
Other
5.27k stars 147 forks source link

Using esm to import esm synchronously. #922

Open jakobrosenberg opened 1 year ago

jakobrosenberg commented 1 year ago

Is it possible to do something like this with esm to synchronously import esm modules?

import esm from 'esm'
import { createRequire } from "node:module";
const require = createRequire(import.meta.url)(esm)(module);

// synchronously import a file
const thing = require('./somefile.js')
jakobrosenberg commented 1 year ago

I found a work around by creating a .cjs file to handle the dynamic imports. Alas it struggles to import ESM files if the imported file doesn't have a .mjs extension. Setting package.json type to module in the package of the imported file seems to make no difference.