Skip to content

Minify prod error messages for all browser bundles#36277

Open
eps1lon wants to merge 1 commit intofacebook:mainfrom
eps1lon:sebbie/04-15-minify_prod_error_messages_for_all_browser_bundles
Open

Minify prod error messages for all browser bundles#36277
eps1lon wants to merge 1 commit intofacebook:mainfrom
eps1lon:sebbie/04-15-minify_prod_error_messages_for_all_browser_bundles

Conversation

@eps1lon
Copy link
Copy Markdown
Collaborator

@eps1lon eps1lon commented Apr 15, 2026

We minify error messages that can be surfaced in production by replacing them with an error code that is decoded by https://react.dev/errors

Before Server Components, we only applied this to browser bundles but not server bundles (e.g. react-dom/server.browser had minified errors but not react-dom/server.node).

For Server Components we actually do have bundles that run in the browser e.g. react-server-dom-webpack/client.browser. However, we were not minifying error messages. Now we do which saves up to 500B (e.g. react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js)

Also applied the same changes to the experimental Fizz external runtime for consistency even though the runtime has no errors yet.

@meta-cla meta-cla bot added the CLA Signed label Apr 15, 2026
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Apr 15, 2026
@react-sizebot
Copy link
Copy Markdown

Comparing: 00f063c...6b9fb66

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.84 kB 6.84 kB +0.05% 1.88 kB 1.88 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 612.91 kB 612.91 kB = 108.30 kB 108.31 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.84 kB 6.84 kB +0.05% 1.88 kB 1.88 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 678.85 kB 678.85 kB = 119.27 kB 119.27 kB
facebook-www/ReactDOM-prod.classic.js = 698.58 kB 698.24 kB = 122.74 kB 122.65 kB
facebook-www/ReactDOM-prod.modern.js = 688.90 kB 688.55 kB = 121.12 kB 121.03 kB
facebook-www/ESLintPluginReactHooks-prod.classic.js New file 0.00 kB 2,038.50 kB New file 0.00 kB 297.56 kB
facebook-www/ESLintPluginReactHooks-prod.modern.js New file 0.00 kB 2,038.50 kB New file 0.00 kB 297.56 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js = 112.23 kB 109.71 kB = 22.68 kB 21.38 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js = 110.44 kB 107.91 kB = 22.31 kB 21.02 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js = 110.44 kB 107.91 kB = 22.31 kB 21.02 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js = 119.43 kB 115.57 kB = 23.90 kB 22.40 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js = 119.08 kB 115.22 kB = 23.81 kB 22.30 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js = 117.64 kB 113.78 kB = 23.53 kB 22.04 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js = 117.64 kB 113.78 kB = 23.53 kB 22.04 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js = 117.28 kB 113.43 kB = 23.43 kB 21.95 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js = 117.28 kB 113.43 kB = 23.43 kB 21.95 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
facebook-www/ESLintPluginReactHooks-prod.classic.js New file 0.00 kB 2,038.50 kB New file 0.00 kB 297.56 kB
facebook-www/ESLintPluginReactHooks-prod.modern.js New file 0.00 kB 2,038.50 kB New file 0.00 kB 297.56 kB
oss-experimental/react-server-dom-esm/esm/react-server-dom-esm-client.browser.production.js = 102.11 kB 101.46 kB = 20.85 kB 20.59 kB
oss-stable-semver/react-server-dom-esm/esm/react-server-dom-esm-client.browser.production.js = 102.11 kB 101.46 kB = 20.85 kB 20.59 kB
oss-stable/react-server-dom-esm/esm/react-server-dom-esm-client.browser.production.js = 102.11 kB 101.46 kB = 20.85 kB 20.59 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.production.js = 62.40 kB 61.53 kB = 12.09 kB 11.66 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.production.js = 62.40 kB 61.53 kB = 12.09 kB 11.66 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.production.js = 62.40 kB 61.53 kB = 12.09 kB 11.66 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.production.js = 62.23 kB 61.33 kB = 12.05 kB 11.62 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.production.js = 62.23 kB 61.33 kB = 12.05 kB 11.62 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.production.js = 62.23 kB 61.33 kB = 12.05 kB 11.62 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js = 64.79 kB 63.66 kB = 12.58 kB 12.12 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js = 64.79 kB 63.66 kB = 12.58 kB 12.12 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js = 64.79 kB 63.66 kB = 12.58 kB 12.12 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js = 64.42 kB 63.29 kB = 12.49 kB 12.03 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js = 64.42 kB 63.29 kB = 12.49 kB 12.03 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js = 64.42 kB 63.29 kB = 12.49 kB 12.03 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js = 112.23 kB 109.71 kB = 22.68 kB 21.38 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js = 110.44 kB 107.91 kB = 22.31 kB 21.02 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js = 110.44 kB 107.91 kB = 22.31 kB 21.02 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js = 119.43 kB 115.57 kB = 23.90 kB 22.40 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js = 119.08 kB 115.22 kB = 23.81 kB 22.30 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js = 117.64 kB 113.78 kB = 23.53 kB 22.04 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js = 117.64 kB 113.78 kB = 23.53 kB 22.04 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js = 117.28 kB 113.43 kB = 23.43 kB 21.95 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js = 117.28 kB 113.43 kB = 23.43 kB 21.95 kB

Generated by 🚫 dangerJS against 6b9fb66

@eps1lon eps1lon marked this pull request as ready for review April 15, 2026 16:41
@eps1lon eps1lon requested review from gnoff and unstubbable April 16, 2026 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed React Core Team Opened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants