zx: [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in package.json
Nbb, a ClojureScript interpreter for Node.js uses dynamic import to load libraries. To resolve which JS file to load, it uses code like the following:
import { createRequire } from 'module';
const req = createRequire(import.meta.url);
console.log(req.resolve('zx'));
This code worked in zx 5.3.0 but stopped working in 6.0.7 with the following error:
$ node script.mjs
path
node:internal/errors:465
ErrorCaptureStackTrace(err);
^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /private/tmp/test-nbb/node_modules/zx/package.json
at new NodeError (node:internal/errors:372:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:433:9)
at packageExportsResolve (node:internal/modules/esm/resolve:657:7)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.resolve (node:internal/modules/cjs/helpers:108:19)
at file:///private/tmp/test-nbb/script.mjs:6:17
at ModuleJob.run (node:internal/modules/esm/module_job:197:25)
at async Promise.all (index 0) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Reactions: 1
- Comments: 29
I confirm the same issue on the latest version, version 4.3 works fine
Now I’m not sure if this is a Node.js bug either since when I add:
then it also works again. I guess I’m stuck for now then, until I can use import.meta.resolve.
All fixed now, nbb 0.3.7 works with zx 6.0.0+:
I can use https://github.com/wooorm/import-meta-resolve as a workaround.
Maybe we will one day figure it out, thanks for the time and help 😃.