Open pleerock opened 7 months ago
Under which runtime? It will work fine in Node.js and probably that new Bare thing too, but I don't know about Bun, Deno, LLRT. And when using a bundler, that bundler can be configured to inject __dirname
.
Moving to ESM is a disruptive change, because then the modules can't be used from CJS anymore. I'm not saying it will never happen, but we should not take it lightly.
In my case I have Node.js runtime (via Electron), the bundler I'm using is Vite, however it doesn't replace __dirname from Level package. Not sure why, maybe because Level is used in another library which is ESM module and dependency of the main (Electron, it's Node.js process) package (all inside monorepo).
Maybe you need https://github.com/rollup/plugins/tree/master/packages/esm-shim.
@vweevers thanks for the hint, I'll try it.
ESM support is required these days in most projects. Would be great to have ESM support. Right now using stuff like
__dirname
blocks usages of these packages in ESM modules.