purescript-contrib / purescript-react

React Bindings for PureScript
MIT License
400 stars 65 forks source link

Large bundled filesize #82

Open sharkdp opened 8 years ago

sharkdp commented 8 years ago

In the current version of purescript-react, react is required, so I need to use pulp browserify -O instead of pulp build -O. Compiling the purescript-react-example project, this leaves me with a 684K javascript file where most of the react stuff is still included. This feels quite heavy for a small demo project.

I am in the progress of updating a Thermite project to the newest version (of Thermite and -react) and this change increased the bundle filesize by a factor of 4-5. My guess is that the psc-bundle dead code eliminiation is somehow better than the browserify one.

Does someone have any ideas on how to address this problem?

paf31 commented 8 years ago

Another option is to write a little require shim in a JavaScript file. I think the purescript-react-example repo does that, and so does the Thermite demo.

sharkdp commented 8 years ago

Interesting. This doesn't help with dead code elimination (i.e. the total JS file size), though?

paf31 commented 8 years ago

Yes, you can use psc-bundle, and then you'll be left with the require statements for react and react-dom, which you can then provide using a shim.

sharkdp commented 8 years ago

Sorry for the poor explanation from my side. My point was that I (believe I) was previously able to use psc-bundle to perform DCE on react.js itself.

paf31 commented 8 years ago

Ah I see. I wasn't aware that was possible before, I'm slightly surprised 😄