Skip to content

Many extra chunks are generated #5266

@spectre900

Description

@spectre900

Rollup Version

4.5.1

Operating System (or Browser)

Playground

Node Version (if applicable)

NA

Link To Reproduction

https://rollupjs.org/repl/?version=4.5.1&shareable=JTdCJTIyZXhhbXBsZSUyMiUzQW51bGwlMkMlMjJtb2R1bGVzJTIyJTNBJTVCJTdCJTIyY29kZSUyMiUzQSUyMmltcG9ydCUyMCU3QiUyMHMxJTIwJTdEJTIwZnJvbSUyMCcuJTJGc2hhcmVkLTEuanMnJTVDbiU1Q25jb25zdCUyMCU3QiUyMGQxJTIwJTdEJTIwJTNEJTIwaW1wb3J0KCcuJTJGZHluYW1pYy0xLmpzJyklM0IlNUNuY29uc3QlMjAlN0IlMjBkMiUyMCU3RCUyMCUzRCUyMGltcG9ydCgnLiUyRmR5bmFtaWMtMi5qcycpJTNCJTVDbiU1Q25leHBvcnQlMjBjb25zdCUyMGNvbXBvbmVudCUyMCUzRCUyMCh4KSUyMCUzRCUzRSUyMCU3QiU1Q24lMjAlMjByZXR1cm4lMjBzMShkMShkMih4KSkpJTNCJTVDbiU3RCUyMiUyQyUyMmlzRW50cnklMjIlM0F0cnVlJTJDJTIybmFtZSUyMiUzQSUyMm1haW4uanMlMjIlN0QlMkMlN0IlMjJjb2RlJTIyJTNBJTIyaW1wb3J0JTIwJTdCJTIwczElMjAlN0QlMjBmcm9tJTIwJy4lMkZzaGFyZWQtMS5qcyclNUNuaW1wb3J0JTIwJTdCJTIwczIlMjAlN0QlMjBmcm9tJTIwJy4lMkZzaGFyZWQtMi5qcyclNUNuJTVDbmV4cG9ydCUyMGNvbnN0JTIwZDElMjAlM0QlMjAoeCklMjAlM0QlM0UlMjAlN0IlNUNuJTIwJTIwcmV0dXJuJTIwczEoczIoeCkpJTNCJTVDbiU3RCUyMiUyQyUyMmlzRW50cnklMjIlM0FmYWxzZSUyQyUyMm5hbWUlMjIlM0ElMjJkeW5hbWljLTEuanMlMjIlN0QlMkMlN0IlMjJjb2RlJTIyJTNBJTIyaW1wb3J0JTIwJTdCJTIwczElMjAlN0QlMjBmcm9tJTIwJy4lMkZzaGFyZWQtMS5qcyclNUNuaW1wb3J0JTIwJTdCJTIwczIlMjAlN0QlMjBmcm9tJTIwJy4lMkZzaGFyZWQtMi5qcyclNUNuJTVDbmV4cG9ydCUyMGNvbnN0JTIwZDIlMjAlM0QlMjAoeCklMjAlM0QlM0UlMjAlN0IlNUNuJTIwJTIwcmV0dXJuJTIwczEoczIoeCkpJTNCJTVDbiU3RCUyMiUyQyUyMmlzRW50cnklMjIlM0FmYWxzZSUyQyUyMm5hbWUlMjIlM0ElMjJkeW5hbWljLTIuanMlMjIlN0QlMkMlN0IlMjJjb2RlJTIyJTNBJTIyZXhwb3J0JTIwY29uc3QlMjBzMSUyMCUzRCUyMCh4KSUyMCUzRCUzRSUyMCU3QiUyMCU1Q24lMjAlMjByZXR1cm4lMjB4JTNCJTVDbiU3RCUyMiUyQyUyMmlzRW50cnklMjIlM0FmYWxzZSUyQyUyMm5hbWUlMjIlM0ElMjJzaGFyZWQtMS5qcyUyMiU3RCUyQyU3QiUyMmNvZGUlMjIlM0ElMjJleHBvcnQlMjBjb25zdCUyMHMyJTIwJTNEJTIwKHgpJTIwJTNEJTNFJTIwJTdCJTIwJTVDbiUyMCUyMHJldHVybiUyMHglM0IlNUNuJTdEJTIyJTJDJTIyaXNFbnRyeSUyMiUzQWZhbHNlJTJDJTIybmFtZSUyMiUzQSUyMnNoYXJlZC0yLmpzJTIyJTdEJTVEJTJDJTIyb3B0aW9ucyUyMiUzQSU3QiUyMm91dHB1dCUyMiUzQSU3QiUyMmZvcm1hdCUyMiUzQSUyMmVzJTIyJTdEJTJDJTIydHJlZXNoYWtlJTIyJTNBdHJ1ZSU3RCU3RA==

Expected Behaviour

Playground 1

We expect only 3 chunks to be formed: main, dynamic-1 and dynamic-2. However many small extra chunks are generated.

Playground 2

Setting experimentalMinChunkSize does not merge the extra generated chunks.

Playground 3

Also in examples where experimentalMinChunkSize does work it tries to merge chunks that are manually specified using dynamic imports. Such dynamically imported chunks should not be merged.

So the behaviour we are looking for is:

  1. Small extra chunks should not be generated at all.
  2. If at all they are generated we should be able to merge them.
  3. Dynamically imported modules should never be merged.

Actual Behaviour

Many extra chunks are generated that are extremely small and also possible merges are not applied.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions