fix(config): prioritize explicit aliases over tsconfig paths - #3347
Merged
james-elicx merged 2 commits intoSep 21, 2026
Merged
Conversation
@vinext/cloudflare
create-vinext-app
@vinext/types
vinext
@cloudflare/workers-response-store
commit: |
Contributor
Performance benchmarksCompared 0 improved · 0 regressed · 6 within ±1.5%
View detailed results and traces 🟢 improvement · 🔴 regression · ⚫ change below 1.5% · paired base/head |
hyoban
marked this pull request as ready for review
September 21, 2026 14:15
Member
|
/bigbonk review for issues Time limit: 8 minutes. Complete the review and post all findings within that limit. |
Contributor
|
LGTM! |
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Explicit
resolve.aliasentries currently lose to Vinext's generated tsconfig aliases. Because those generated entries skip stylesheet resolution, CSS such asurl("~@/icon.svg")can remain unresolved even when the app explicitly configures~@. Dify worked around this with a post-order config plugin: langgenius/dify#42654.Keep explicit Vite aliases ahead of generated aliases while preserving their order, regular expressions, and custom resolvers. Identify explicit Next config aliases by their source instead of comparing replacement values, so an explicit alias matching the tsconfig target still applies to CSS. Copy the resolve configuration before rearranging aliases so Vite can reuse the original inline aliases on server restart. Inferred tsconfig aliases continue to skip stylesheet resolution, preserving package CSS exports.
Next.js reference: its CSS loader resolves CSS imports and asset URLs through the bundler resolver. This change makes explicit Vite configuration usable without broadening inferred tsconfig aliases to CSS.
Validation
server.restart()to catch inline-config mutation.pnpm run checkpassed, including repository-wide format, lint, type, Next.js type-sync, and shim checks.PLAYWRIGHT_PROJECT=cloudflare-workers pnpm run test:e2e: 87 passed, 3 skipped after the restart fix.