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.
This PR contains:
Are tests included?
Breaking Changes?
List any relevant issue numbers:
Resolves #3655, resolves #3651
Description
This allows to disable tree-shaking on a per-module basis by setting
moduleSideEffects
to"no-treeshake"
in https://rollupjs.org/guide/en/#resolveid, https://rollupjs.org/guide/en/#load or https://rollupjs.org/guide/en/#transform.Besides the obvious effect, this will also make sure that this module is always included in one of the generated chunks, even if the module is empty. The important use-case here is CSS (or in general asset) import handling when the imports should later be associated with a specific chunk:
import 'foo.css'
returns{code: '', moduleSideEffects: 'no-treeshake'}
in itsload
hook for"foo.css"
.generateBundle
, the plugin can scan themodules
properties in the chunks of the passed bundle object for our modulefoo.css
and associate the actually generated CSS correctly with the given chunk.