4 ms·
That's exactly what my team told me when we transitionned to an SPA. Turns out, splitting properly an SPA is complex and bundling is pretty annoying at the mome
by realusername 3y ago
That's exactly what my team told me when we transitionned to an SPA. Turns out, splitting properly an SPA is complex and bundling is pretty annoying at the moment.
- gausswho 3y agoPerhaps I can help? Which bundler? What issues are you encountering?
- realusername 3y agoWe're using Vite.js/esbuild, the bundler takes 2.5GB of RAM locally.
- gausswho 3y agoI can offer suggestions on code-splitting, but bundler memory consumption gets into the weeds quickly.
- realusername 3y agoYeah we all collectively had a look at it and there's not a lot of solutions available. The bundler needs to bundle everything at some point and you are going to pay the SPA tax. That's why I personally don't recommend SPAs, it introduce a whole other class of issues on top of what you usually deal with. Google makes it work with Gmail and Youtube but it's Google, they can throw infinite engineers at any problem and could make those in pretty much anything.
- gausswho 3y agoI agree there is a complexity cost for bundlers. Whether to pay it is an equation that roughly aligns with how robust and interactive your client offering needs to be. Applications probably, websites probably not.
- realusername 3y agoWe're a web application and even with those, I'm not sure the bundling is worth it. Customers in some regions complain about the high payload, we made sure the chunks are split properly but with continuous deployment, there's a lot of cache invalidation anyways.
- randomwebdev 3y agoWhy? I think most modern bundlers and spa routers supports code splitting out of the box by just using dynamic imports, aka: `const myComponent = await import("/path/to/component")`
- realusername 3y agoYou still are going to build the whole thing locally anyways, even with vite.js, it takes 2.5GB of RAM on my machine.
- randomwebdev 3y agoI don't understand your concern with it and why this is a problem. I haven't personally noticed the vite/esbuild memory consumption, but I also run build only once at the end before deployment or generating the prod artifacts.
- realusername 3y agoIt's a problem because it slows down my machine and each js file which is added makes the ram and cpu problem worse, it just doesn't scale. We're using typescript so building only once a day isn't an option.
- Tade0 3y ago> It's a problem because it slows down my machine I don't know what machine you're using, but filling 2.5GB of RAM was already taking less than 200ms back in 2018. I don't suspect memory usage is an issue here.
- realusername 3y agoIt wouldn't be an issue if other work tools were taking absolutely nothing yes but as it is now, 16GB of RAM with a JS oriented stack isn't enough anymore. And getting more RAM is just delaying the problem anyways since it takes more RAM every week as the product evolves.