That is quite small actually... My application (internal use, not consumer facing, so no panic) has a single packed script file, that is around 100KB.
That is quite small actually... My application (internal use, not consumer facing, so no panic) has a single packed script file, that is around 100KB.
If this is the future, I know a lot of web apps that will need retooling. That is just enough space for react (+react-dom). We’ll have to split up react and web apps themselves in future apps if chrome goes this route; although I suppose that’s marginally better for caching performance.
For example, non-minified bootstrap.js is more than that. Just as a data point.
This will break a bunch of the web. I'll be curious to see how this gets worked out as the work progresses.
Luxon, I believe, is a similar story.
The restrictions are wire size. `bootstrap.min.js` is ~10KiB on the wire, which means it comfortably fits (as do jQuery, most analytics packages, etc.).
That said, the prototype does break a lot of the web, but that's not a crisis. The intent isn't to have this rolled out everywhere against unwitting content, but rather (like TLS), to let developers opt-in to a single set of rules when they see value. There are also places (e.g. PWAs) where the browser-imposed quality bar needs to be high. Blocking PWA install for sites that don't send the opt-in header seems like a reasonable place to start.
And ofc you’d naturally just attribute this as an artifact of optimization, just as single-file packing was. Which it is, given http 2/3
Splitting probably makes sense only for an infrequently used feature, like video chat in an app like Gmail or Slack.
https://facebook.github.io/create-react-app/docs/code-splitt...
You need to make a business case that your whole application is modularly composable.
Some application might fit under this umbrella, but there are other stuff that don't, like a pdf-render, or something like google slides, which as I just checked, the core editor js is bundled in a single js file and as large as 1.4MB.