@samitouri / QOS-React-2 / commits / 2c2bdd0ffe

[Fizz] Move /static build into /server builds (#27327)

This joins the static (prerender) builds with the server builds but doesn't change the public entry points. The idea of two separate bundles is that we'd have a specialized build for Fizz just for the prerender that could do a lot more. However, in practice the code is implemented with a dynamic check so it's in both. It's also not a lot of code. At the same time if you do have a set up that includes both the prerender and the render in the same build output, this just doubles the server bundle size for no reason. So we might as well merge them into one build. However, I don't expose the `prerender` from `/server`. Instead it's just exposed from the public `/static` entry point. This leaves us with the option to go back to separate builds later if it diverges more in the future.

Sebastian Markbåge committed Sep 5, 2023 at 15:55 UTC 2c2bdd0ffe54df60201ee93b29de5cb7b93ff029
10 files changed +24 -39
packages/react-dom/npm/static.browser.js
+6 -2
@@ -1,7 +1,11 @@
1 'use strict';
2
3 +var s;
4 if (process.env.NODE_ENV === 'production') {
4 - module.exports = require('./cjs/react-dom-static.browser.production.min.js');
5 + s = require('./cjs/react-dom-server.browser.production.min.js');
6 } else {
6 - module.exports = require('./cjs/react-dom-static.browser.development.js');
7 + s = require('./cjs/react-dom-server.browser.development.js');
8 }
9 +
10 +exports.version = s.version;
11 +exports.prerender = s.prerender;
packages/react-dom/npm/static.edge.js
+6 -2
@@ -1,7 +1,11 @@
1 'use strict';
2
3 +var s;
4 if (process.env.NODE_ENV === 'production') {
4 - module.exports = require('./cjs/react-dom-static.edge.production.min.js');
5 + s = require('./cjs/react-dom-server.edge.production.min.js');
6 } else {
6 - module.exports = require('./cjs/react-dom-static.edge.development.js');
7 + s = require('./cjs/react-dom-server.edge.development.js');
8 }
9 +
10 +exports.version = s.version;
11 +exports.prerender = s.prerender;
packages/react-dom/npm/static.node.js
+6 -2
@@ -1,7 +1,11 @@
1 'use strict';
2
3 +var s;
4 if (process.env.NODE_ENV === 'production') {
4 - module.exports = require('./cjs/react-dom-static.node.production.min.js');
5 + s = require('./cjs/react-dom-server.node.production.min.js');
6 } else {
6 - module.exports = require('./cjs/react-dom-static.node.development.js');
7 + s = require('./cjs/react-dom-server.node.development.js');
8 }
9 +
10 +exports.version = s.version;
11 +exports.prerenderToNodeStream = s.prerenderToNodeStream;
packages/react-dom/src/server/react-dom-server.browser.js
+1
@@ -8,3 +8,4 @@
8 */
9
10 export * from './ReactDOMFizzServerBrowser.js';
11 +export {prerender} from './ReactDOMFizzStaticBrowser.js';
packages/react-dom/src/server/react-dom-server.edge.js
+1
@@ -8,3 +8,4 @@
8 */
9
10 export * from './ReactDOMFizzServerEdge.js';
11 +export {prerender} from './ReactDOMFizzStaticEdge.js';
packages/react-dom/src/server/react-dom-server.node.js
+1
@@ -8,3 +8,4 @@
8 */
9
10 export * from './ReactDOMFizzServerNode.js';
11 +export {prerenderToNodeStream} from './ReactDOMFizzStaticNode.js';
packages/react-dom/static.browser.js
+1 -1
@@ -7,4 +7,4 @@
7 * @flow
8 */
9
10 -export {prerender, version} from './src/server/ReactDOMFizzStaticBrowser';
10 +export {prerender, version} from './src/server/react-dom-server.browser';
packages/react-dom/static.edge.js
+1 -1
@@ -7,4 +7,4 @@
7 * @flow
8 */
9
10 -export {prerender, version} from './src/server/ReactDOMFizzStaticEdge';
10 +export {prerender, version} from './src/server/react-dom-server.edge';
packages/react-dom/static.node.js
+1 -1
@@ -10,4 +10,4 @@
10 export {
11 prerenderToNodeStream,
12 version,
13 -} from './src/server/ReactDOMFizzStaticNode';
13 +} from './src/server/react-dom-server.node';
scripts/rollup/bundles.js
-30
@@ -286,36 +286,6 @@ const bundles = [
286 externals: ['react', 'react-dom'],
287 },
288
289 - /******* React DOM Fizz Static *******/
290 - {
291 - bundleTypes: __EXPERIMENTAL__ ? [NODE_DEV, NODE_PROD] : [],
292 - moduleType: RENDERER,
293 - entry: 'react-dom/static.browser',
294 - global: 'ReactDOMStatic',
295 - minifyWithProdErrorCodes: true,
296 - wrapWithModuleBoundaries: false,
297 - externals: ['react', 'react-dom'],
298 - },
299 - {
300 - bundleTypes: __EXPERIMENTAL__ ? [NODE_DEV, NODE_PROD] : [],
301 - moduleType: RENDERER,
302 - entry: 'react-dom/static.node',
303 - name: 'react-dom-static.node',
304 - global: 'ReactDOMStatic',
305 - minifyWithProdErrorCodes: false,
306 - wrapWithModuleBoundaries: false,
307 - externals: ['react', 'util', 'async_hooks', 'stream', 'react-dom'],
308 - },
309 - {
310 - bundleTypes: __EXPERIMENTAL__ ? [NODE_DEV, NODE_PROD] : [],
311 - moduleType: RENDERER,
312 - entry: 'react-dom/static.edge',
313 - global: 'ReactDOMStatic',
314 - minifyWithProdErrorCodes: true,
315 - wrapWithModuleBoundaries: false,
316 - externals: ['react', 'react-dom'],
317 - },
318 -
289 /******* React DOM Fizz Server External Runtime *******/
290 {
291 bundleTypes: [BROWSER_SCRIPT],