fix: #825 handle symlinked modules (ala pnpm) correctly #1176
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.
I was having problems with ts-jest failing to compile in my
pnpm
monorepo with weird errors because it apparently wasn't finding dependencies of@types
packages, despite the fact thattsc
works fine. This change fixes it.The reason is that
pnpm
symlinks packages like this:The transitive dependencies are not in the consuming package's
node_modules
or its parents, instead they are in../../../node_modules/.registry/@types/express/4.17.0/node_modules/
, so it's necessary to resolve the symlink to its referent in order to find the dependencies. When ts-jest doesn't implement this resolution, TypeScript assumes all the files are not symlinks and doesn't find the dependencies. Depending on how dependencies are structured this results in missing type information which causes strict type checking to fail.