3 ms·
Afraid that's not accurate. The package size I linked is specifically the `react-dom.production.min.js` bundle that is used on the client side. The `react-dom`
by acemarke 2y ago
Afraid that's not accurate.
The package size I linked is specifically the `react-dom.production.min.js` bundle that is used on the client side. The `react-dom` package does include _separate_ bundles used for server rendering, but that whole React client bundle will get included in your app, and it does _not_ tree-shake at all.
(To be clear I _like_ React, but it's best to be accurate about what happens here.)
- throwAGIway 2y agoSo this package is not the actual react-dom package I get when I npm install react-dom? Thanks for the correction!
- acemarke 2y agoThe `react-dom` NPM package includes multiple different JS bundles that are used for different purposes. See that `unpkg` link I pasted in the parent comment. There's 3 different flavors of `react-dom` for use in the client (dev, prod, profiling), and then several variations of `react-dom` for use _on the server_. The client bundles don't include any of the server functionality. _None_ of the bundles are treeshakeable at all, because A) they're shipped as CommonJS modules and not ESM, and B) the way the React library is written and architectured as a whole. All of the reconciler logic is intertwined and unshakeable, so even if React did suddenly switch to shipping ESM modules instead of CJS, it would still end up as the exact same bundle size.