fix(legacy): fix conflict with the modern build on css emitting #6584
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
Fixes #3296
Fixes #5325
Supersedes #3317
The asset emitting conflict may also exist for other types of assets,
but let's fix the CSS one first.
The conflict here is due to the
hasEmitted
flag that was originallyintended to avoid duplicated CSS for multiple output formats
6bce108#diff-2cfbd4f4d8c32727cd8e1a561cffbde0b384a3ce0789340440e144f9d64c10f6R262-R263
When the legacy plugin is used, the flag was set to
true
for theemitted CSS of the legacy bundle.
But the legacy plugin would remove all its emitted assets later to avoid
duplication.
vite/packages/plugin-legacy/index.js
Lines 444 to 450 in 3fb4118
So this logic results in no CSS to be actually emitted.
In this PR, I used a
__vite_skip_asset_emit__
flag to prevent theCSS
generateBundle
from executing for the legacy build.If other asset emitting plugins encounter similar issues, this flag
can be reused.
Additional context
Before submitting the PR, please make sure you do the following
fixes #123
).