fix(vite): Skip HTML injection for MPA but keep it for SPA #843
+270
−3
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.
Fixes a regression introduced by PR #830 where debug IDs were not being injected into SPA main bundles. The original fix for issue #829 skipped all chunks with HTML facades to prevent creating unnecessary modules in Vite MPA builds. However, in SPAs, the main entry bundle also has an HTML facade but contains actual application code that needs debug ID injection.
This change adds a
containsOnlyImportshelper that checks whether a chunk's code is purely import/export statements. Now, HTML facade chunks are only skipped if they contain just imports (true MPA facades), while chunks with substantial code (SPA main bundles) get debug IDs injected as expected.While the previous fix for #829 already added test cases, I also tested this locally with the reproduction example shared in the issue description. It still works as expected.
Closes #839