Skip to content

[perf] Export theme.ts / create-theme directly #1489

@theogravity

Description

@theogravity

Development under Next.js slows down in dev mode initial startup when importing from the root flowbite-react because it has to compile all exports since we're importing directly from flowbite-react.

It would really help if theme.ts can be directly imported:

https://github.com/themesberg/flowbite-react/blob/main/packages/ui/src/theme.ts

And same with the helpers / create-theme:

https://github.com/themesberg/flowbite-react/blob/main/packages/ui/src/helpers/create-theme.ts

For reference, see:

vercel/next.js#48748

Quote:

react-icons, material icons, etc. Most of these libraries publish barrel files with a lot of re-exports. E.g. material-ui/icons ships 5500 module re-exports, which causes all of them to be compiled. You have to add modularizeImports to reduce it, here's an example: vercel/next.js#45529 (comment)

Unfortunately, optimizePackageImports / modularizeImports doesn't work as it claims to that we had to refactor out react-icons and use the specific icon library that we were using out of it. Now we're seeing the same issues with flowbite-react. The refactor out of react-icons saved us around 40s of initial startup time, and we're seeing around 5-10s with flowbite-react.

Anything that isn't exported directly should be so we can directly reference it instead of the main flowbite-react import.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions