fix resolving package self references #10114
Merged
+103
−35
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Node ESM resolution algorithm has a special case for package self references, i.e. packages importing themselves. Usually, these can be resolved as normal, by resolving from
node_modules/foo/bar.js
up tonode_modules/foo/package.json
. However, if the module is not actually inside a node_modules directory this doesn't work. In particular, Pnpm uses a web of symlinks into a.pnpm
directory, and does not symlink the module itself into its own localnode_modules
folder. Therefore, we need to implement this special case for self references.