fix: handle query parameters for /@vite/* modules
#20998
Merged
+47
−1
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.
/@vite/env?footo verify the fixIssue Summary
The issue (#20997) is in
/packages/vite/src/node/plugins/clientInjections.ts. When query parameters are appended to the env entry URL (e.g.,/@vite/env?token=xxx), the strict equality check fails, causing__DEFINES__to not be replaced, resulting in a ReferenceError.Solution
cleanUrlfrom../../shared/utilscleanUrl(id)to strip query parameters before comparing withnormalizedClientEntryandnormalizedEnvEntryplayground/define/vite.config.jsthat adds the test import during transformationapply: 'serve'to ensure it only runs in development modeTesting
The test imports
/@vite/env?foovia a plugin that only applies during dev mode, ensuring the fix works correctly without affecting build behavior.Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.