Description
π Search Terms
dependency dependencies types tree version
π Version & Regression Information
This is the behavior in every version I tried, and I reviewed the FAQ for entries about Common "Bugs" That Aren't Bugs
β― Playground Link
https://stackblitz.com/edit/stackblitz-starters-qvn2zc
π» Code
Consider the following dependency tree:
- @types/
- send
- mime@^1
- mime@^4 # This version of mime comes packaged with it's own types
- send
- mime@^1
And therefore the following directory structure:
node_modules/
@types/
send/
mime/
mime/
send/
node_modules/
mime/
π Actual behavior
When the @types/send
package attempts to reference mime
it ends up importing mime
(@^4
) and not @types/mime
, even though it's package.json dependency specifically references that version.
Therefore when you run npx tsc
in this package it cannot compile.
π Expected behavior
When @types/send
was to reference mime
, I'd expect it to reference @types/mime
.
Additional information about the issue
I only stumbled across this problem as the mime@^4
package is ESM while @types/send
was hoping to import a CommonJS version of mime@^1

I have made a tiny stackblitz project here: https://stackblitz.com/edit/stackblitz-starters-qvn2zc
And I have also added the same sources to a git repo: https://github.com/johngeorgewright/typescript-dep-error