microsoft / microsoft/TypeScript
@types dependency resolution can reference incorrect version
@sheetalkamat is already working on this.
Since Jul 26, 2024.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.4k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 117
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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.