-
-
Notifications
You must be signed in to change notification settings - Fork 33.5k
Description
See #33460.
tl;dr: it turns out that there's a number of tools that need to be able to locate a package's root directory, and with "exports", they can no longer rely on package/package.json
working, nor package/
.
If we could provide this API, then CJS could path.join
it, and ESM could use URL
, to get whatever file the tool needs to fs.readFile
.
Adding this new API would bypass questions about "should package.json
be an implicit part of a package's API", as well as avoid reliance on ESM-only or CJS-only mechanisms. By providing the package root dir rather than its package.json
, we would not be encouraging or discouraging any patterns of "where to store metadata" - instead, we'd be correctly leaving that choice up to userland.
Example solution: module.packageDir(specifier)
and module.packageDirSync(specifier)
(sync access is critical for many use cases).
Metadata
Metadata
Assignees
Labels
Type
Projects
Status