fix(resolve): support submodules of optional peer deps #14489
Merged
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.
Description
#9321 added support for resolving optional peer deps. But I hit a corner case where that wasn't resolving properly when developing TypeSchema.
@sinclair/typebox
is one of the optional peer deps, but we actually import it as@sinclair/typebox/compiler
. Vite's logic can't detect that@sinclair/typebox/compiler
is handled by the@sinclair/typebox
because it looks for the exact name onpeerDependencies
. So if I try to build with Vite, I get this error:My proposal is to fix this error by checking for the NPM package name on
peerDependencies
, instead of the full module name.Additional context
I also added a test case to avoid regressions.
What is the purpose of this pull request?
Before submitting the PR, please make sure you do the following
fixes #123
).