Skip to content

4.46 breaks styled-components with new in optimization #6040

@stipsan

Description

@stipsan

Rollup Version

4.46.1

Operating System (or Browser)

all

Node Version (if applicable)

No response

Link To Reproduction

https://rollupjs.org/repl/?version=4.46.1&shareable=JTdCJTIyZXhhbXBsZSUyMiUzQW51bGwlMkMlMjJtb2R1bGVzJTIyJTNBJTVCJTdCJTIyY29kZSUyMiUzQSUyMiUyRiUyRiUyMGltcG9ydCUyMHVuaXRsZXNzJTIwZnJvbSUyMCclNDBlbW90aW9uJTJGdW5pdGxlc3MnJTNCJTVDbmltcG9ydCUyMHVuaXRsZXNzJTIwZnJvbSUyMCcuJTJGdW5pdGxlc3MnJTVDbiU1Q24lMkYlMkYlMjBPcmlnaW5hbCUyMGZ1bmN0aW9uJTIwaW4lMjAlNjBzdHlsZWQtY29tcG9uZW50cyU2MCUyQyUyMHN0cmlwcGVkJTIwZm9yJTIwVHlwZVNjcmlwdCUzQSUyMGh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRnN0eWxlZC1jb21wb25lbnRzJTJGc3R5bGVkLWNvbXBvbmVudHMlMkZibG9iJTJGZDBiNzNhY2Q5MzFkYWVmOWVlYmI5N2UzNGZlNDU1MmZmYzU3ZDYzZSUyRnBhY2thZ2VzJTJGc3R5bGVkLWNvbXBvbmVudHMlMkZzcmMlMkZ1dGlscyUyRmFkZFVuaXRJZk5lZWRlZC50cyUyM0wxMCU1Q25leHBvcnQlMjBkZWZhdWx0JTIwZnVuY3Rpb24lMjBhZGRVbml0SWZOZWVkZWQobmFtZSUyQyUyMHZhbHVlKSUyMCU3QiU1Q24lMjAlMjAlMkYlMkYlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZhbWlsYWphY2slMkZlc2xpbnQtcGx1Z2luLWZsb3d0eXBlLWVycm9ycyUyRmlzc3VlcyUyRjEzMyU1Q24lMjAlMjBpZiUyMCh2YWx1ZSUyMCUzRCUzRCUyMG51bGwlMjAlN0MlN0MlMjB0eXBlb2YlMjB2YWx1ZSUyMCUzRCUzRCUzRCUyMCdib29sZWFuJyUyMCU3QyU3QyUyMHZhbHVlJTIwJTNEJTNEJTNEJTIwJycpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMHJldHVybiUyMCcnJTNCJTVDbiUyMCUyMCU3RCU1Q24lNUNuJTIwJTIwaWYlMjAodHlwZW9mJTIwdmFsdWUlMjAlM0QlM0QlM0QlMjAnbnVtYmVyJyUyMCUyNiUyNiUyMHZhbHVlJTIwISUzRCUzRCUyMDAlMjAlMjYlMjYlMjAhKG5hbWUlMjBpbiUyMHVuaXRsZXNzKSUyMCUyNiUyNiUyMCFuYW1lLnN0YXJ0c1dpdGgoJy0tJykpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMHJldHVybiUyMCU2MCUyNCU3QnZhbHVlJTdEcHglNjAlM0IlMjAlMkYlMkYlMjBQcmVzdW1lcyUyMGltcGxpY2l0JTIwJ3B4JyUyMHN1ZmZpeCUyMGZvciUyMHVuaXRsZXNzJTIwbnVtYmVycyUyMGV4Y2VwdCUyMGZvciUyMENTUyUyMHZhcmlhYmxlcyU1Q24lMjAlMjAlN0QlNUNuJTVDbiUyMCUyMHJldHVybiUyMFN0cmluZyh2YWx1ZSkudHJpbSgpJTNCJTVDbiU3RCUyMiUyQyUyMmlzRW50cnklMjIlM0F0cnVlJTJDJTIybmFtZSUyMiUzQSUyMm1haW4uanMlMjIlN0QlMkMlN0IlMjJjb2RlJTIyJTNBJTIyJTJGJTJGJTIwRnJvbSUyMGh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmVtb3Rpb24tanMlMkZlbW90aW9uJTJGYmxvYiUyRjQ5MjI5NTUzOTY3YjYwNTBjOTJkOTYwMmViNTc3YmRjNDgxNjdlOTElMkZwYWNrYWdlcyUyRnVuaXRsZXNzJTJGc3JjJTJGaW5kZXgudHMlMjBzdHJpcHBlZCUyMGZyb20lMjBUUyU1Q24lNUNubGV0JTIwdW5pdGxlc3NLZXlzJTIwJTNEJTIwJTdCJTVDbiUyMCUyMGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50JTNBJTIwMSUyQyU1Q24lMjAlMjBhc3BlY3RSYXRpbyUzQSUyMDElMkMlNUNuJTIwJTIwYm9yZGVySW1hZ2VPdXRzZXQlM0ElMjAxJTJDJTVDbiUyMCUyMGJvcmRlckltYWdlU2xpY2UlM0ElMjAxJTJDJTVDbiUyMCUyMGJvcmRlckltYWdlV2lkdGglM0ElMjAxJTJDJTVDbiUyMCUyMGJveEZsZXglM0ElMjAxJTJDJTVDbiUyMCUyMGJveEZsZXhHcm91cCUzQSUyMDElMkMlNUNuJTIwJTIwYm94T3JkaW5hbEdyb3VwJTNBJTIwMSUyQyU1Q24lMjAlMjBjb2x1bW5Db3VudCUzQSUyMDElMkMlNUNuJTIwJTIwY29sdW1ucyUzQSUyMDElMkMlNUNuJTIwJTIwZmxleCUzQSUyMDElMkMlNUNuJTIwJTIwZmxleEdyb3clM0ElMjAxJTJDJTVDbiUyMCUyMGZsZXhQb3NpdGl2ZSUzQSUyMDElMkMlNUNuJTIwJTIwZmxleFNocmluayUzQSUyMDElMkMlNUNuJTIwJTIwZmxleE5lZ2F0aXZlJTNBJTIwMSUyQyU1Q24lMjAlMjBmbGV4T3JkZXIlM0ElMjAxJTJDJTVDbiUyMCUyMGdyaWRSb3clM0ElMjAxJTJDJTVDbiUyMCUyMGdyaWRSb3dFbmQlM0ElMjAxJTJDJTVDbiUyMCUyMGdyaWRSb3dTcGFuJTNBJTIwMSUyQyU1Q24lMjAlMjBncmlkUm93U3RhcnQlM0ElMjAxJTJDJTVDbiUyMCUyMGdyaWRDb2x1bW4lM0ElMjAxJTJDJTVDbiUyMCUyMGdyaWRDb2x1bW5FbmQlM0ElMjAxJTJDJTVDbiUyMCUyMGdyaWRDb2x1bW5TcGFuJTNBJTIwMSUyQyU1Q24lMjAlMjBncmlkQ29sdW1uU3RhcnQlM0ElMjAxJTJDJTVDbiUyMCUyMG1zR3JpZFJvdyUzQSUyMDElMkMlNUNuJTIwJTIwbXNHcmlkUm93U3BhbiUzQSUyMDElMkMlNUNuJTIwJTIwbXNHcmlkQ29sdW1uJTNBJTIwMSUyQyU1Q24lMjAlMjBtc0dyaWRDb2x1bW5TcGFuJTNBJTIwMSUyQyU1Q24lMjAlMjBmb250V2VpZ2h0JTNBJTIwMSUyQyU1Q24lMjAlMjBsaW5lSGVpZ2h0JTNBJTIwMSUyQyU1Q24lMjAlMjBvcGFjaXR5JTNBJTIwMSUyQyU1Q24lMjAlMjBvcmRlciUzQSUyMDElMkMlNUNuJTIwJTIwb3JwaGFucyUzQSUyMDElMkMlNUNuJTIwJTIwc2NhbGUlM0ElMjAxJTJDJTVDbiUyMCUyMHRhYlNpemUlM0ElMjAxJTJDJTVDbiUyMCUyMHdpZG93cyUzQSUyMDElMkMlNUNuJTIwJTIwekluZGV4JTNBJTIwMSUyQyU1Q24lMjAlMjB6b29tJTNBJTIwMSUyQyU1Q24lMjAlMjBXZWJraXRMaW5lQ2xhbXAlM0ElMjAxJTJDJTVDbiU1Q24lMjAlMjAlMkYlMkYlMjBTVkctcmVsYXRlZCUyMHByb3BlcnRpZXMlNUNuJTIwJTIwZmlsbE9wYWNpdHklM0ElMjAxJTJDJTVDbiUyMCUyMGZsb29kT3BhY2l0eSUzQSUyMDElMkMlNUNuJTIwJTIwc3RvcE9wYWNpdHklM0ElMjAxJTJDJTVDbiUyMCUyMHN0cm9rZURhc2hhcnJheSUzQSUyMDElMkMlNUNuJTIwJTIwc3Ryb2tlRGFzaG9mZnNldCUzQSUyMDElMkMlNUNuJTIwJTIwc3Ryb2tlTWl0ZXJsaW1pdCUzQSUyMDElMkMlNUNuJTIwJTIwc3Ryb2tlT3BhY2l0eSUzQSUyMDElMkMlNUNuJTIwJTIwc3Ryb2tlV2lkdGglM0ElMjAxJTVDbiU3RCU1Q24lNUNuZXhwb3J0JTIwZGVmYXVsdCUyMHVuaXRsZXNzS2V5cyUyMiUyQyUyMmlzRW50cnklMjIlM0FmYWxzZSUyQyUyMm5hbWUlMjIlM0ElMjJ1bml0bGVzcy5qcyUyMiU3RCU1RCUyQyUyMm9wdGlvbnMlMjIlM0ElN0IlN0QlN0Q=

Expected Behaviour

Expected behavior is here,
the unitlessKeys object shouldn't be emptied (see the name in unitless check), as is the case in 4.45.3 and earlier.
styled-components uses this to determine wether to add px units to CSS like flex: 1.

Actual Behaviour

It removes all properties and this breaks projects that use styled-components with vite. Projects that use rollup to build npm libraries are unaffected, since styled-components is typically a peer dependency and thus marked as external in those cases.

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