purescript-contrib/purescript-react

Large bundled filesize

sharkdp opened this issue · 5 comments

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

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.

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

paf31 commented

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.

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

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