developit / preact-redux

:loop: Preact integration for Redux (no shim needed!)
https://npm.im/preact-redux
MIT License
288 stars 27 forks source link

huge filesize overhead - twice the size of react+redux implementation? #26

Open tconroy opened 6 years ago

tconroy commented 6 years ago

hi!

we're considering using preact + preact-redux as an alternative to react + react-redux. This is pretty much solely due to bundle size savings migrating to preact.

However preact-redux seems to take up a crazy amount of space. On a fresh preact-cli app with only 1 additional dependency outside of redux and preact-redux, preact-redux is 35% of the total bundle size at 41.8KB on a production build. Way larger than preact, preact-router, polyfills, etc.

screen shot 2018-01-09 at 4 36 10 pm

Meanwhile in a react app production build I am seeing redux @ 5.76KB + react-redux @ 11.79KB === 17.55KB total, versus preact-redux's 41.9KB. Something doesn't seem right here!

Both are using latest versions of respective libraries (Redux + react/preact-redux).

any ideas how we can bring this bundle size down? It's unclear to me why this would be over twice the filesize.

developit commented 6 years ago

Looks like it's because we're inlining PropTypes and possibly another dependency (which seems like an error!)

tconroy commented 6 years ago

awesome, glad to hear it's just a bug! Curious if you had any headway with this issue @developit? I'm sure you're quite busy so I'd be happy to help if you can point me in the right direction. :)

developit commented 6 years ago

I spent a good long time looking into this yesterday, and it's a result of changes in react-redux, which we upstream (and compile to modify). I haven't had much success yet, only getting it down to 3.7kb.

tconroy commented 6 years ago

thank you for the update & the investigation! 3.7kb is definitely a notable improvement. Just out of curiosity what were the changes made upstream to lead to this? are they inlining proptypes like you suspected?

Cheers!

glf256 commented 5 years ago

I am also interested in learning what changes were made to get the final size down to 3.7kb.

developit commented 5 years ago

Hiya, sorry for dropping the ball on this. I'll try to dig up the branch I was working on.