Fix incorrect usage of package.json types/main in package subdirectories #60696
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.
Fixes a bug I noticed randomly
The content of
moduleResolution_packageJson_yesAtPackageRoot.ts, for easier reviewing:You can see the resolution of
"foo/bar"incorrectly looking for/node_modules/foo/bar/types.d.tsdue to package.json content in/node_modules/foo. (It doesn’t change the final resolution in these tests because/node_modules/foo/bar/types.d.tsdoesn’t exist.) Presumably this problem only escaped detection for ~10 years because whatever value was in package.json"types"usually is either"index.d.ts", which would get looked up in subdirectories anyway, or is a path that doesn’t exist when resolved relative to the subdirectory path.