Skip to content

Commit fc86ef0

Browse files
authored
Use single entry point for SSR via browser field (#10362)
* Use single entry point for SSR via browser field * Add server.browser entry point and smoke tests * Tweak bundle naming * Fix import * Re-record * Fix the robot nits * Add resetModules for some extra isolation
1 parent 630afb3 commit fc86ef0

File tree

12 files changed

+204
-178
lines changed

12 files changed

+204
-178
lines changed

packages/react-dom/node-stream.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

packages/react-dom/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,15 @@
2727
"README.md",
2828
"index.js",
2929
"server.js",
30-
"node-stream.js",
30+
"server.browser.js",
3131
"test-utils.js",
3232
"unstable-native-dependencies.js",
3333
"cjs/",
3434
"umd/"
3535
],
36+
"browser": {
37+
"./server.js": "./server.browser.js"
38+
},
3639
"browserify": {
3740
"transform": [
3841
"loose-envify"

packages/react-dom/server.browser.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
'use strict';
2+
3+
if (process.env.NODE_ENV === 'production') {
4+
module.exports = require('./cjs/react-dom-server.browser.production.min.js');
5+
} else {
6+
module.exports = require('./cjs/react-dom-server.browser.development.js');
7+
}

packages/react-dom/server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

33
if (process.env.NODE_ENV === 'production') {
4-
module.exports = require('./cjs/react-dom-server.production.min.js');
4+
module.exports = require('./cjs/react-dom-server.node.production.min.js');
55
} else {
6-
module.exports = require('./cjs/react-dom-server.development.js');
6+
module.exports = require('./cjs/react-dom-server.node.development.js');
77
}

scripts/rollup/bundles.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,14 +172,14 @@ const bundles = [
172172
moduleName: 'ReactDOMServer',
173173
sourceMap: false,
174174
},
175-
entry: 'src/renderers/dom/ReactDOMServerEntry',
175+
entry: 'src/renderers/dom/ReactDOMServerBrowserEntry',
176176
externals: ['prop-types', 'prop-types/checkPropTypes'],
177-
fbEntry: 'src/renderers/dom/ReactDOMServerEntry',
177+
fbEntry: 'src/renderers/dom/ReactDOMServerBrowserEntry',
178178
hasteName: 'ReactDOMServer',
179179
isRenderer: true,
180-
label: 'dom-server-string',
180+
label: 'dom-server-browser',
181181
manglePropertiesOnProd: false,
182-
name: 'react-dom/server',
182+
name: 'react-dom/server.browser',
183183
paths: [
184184
'src/renderers/dom/**/*.js',
185185
'src/renderers/shared/**/*.js',
@@ -199,12 +199,12 @@ const bundles = [
199199
moduleName: 'ReactDOMNodeStream',
200200
sourceMap: false,
201201
},
202-
entry: 'src/renderers/dom/ReactDOMNodeStreamEntry',
202+
entry: 'src/renderers/dom/ReactDOMServerNodeEntry',
203203
externals: ['prop-types', 'prop-types/checkPropTypes', 'stream'],
204204
isRenderer: true,
205-
label: 'dom-server-node-stream',
205+
label: 'dom-server-server-node',
206206
manglePropertiesOnProd: false,
207-
name: 'react-dom/node-stream',
207+
name: 'react-dom/server.node',
208208
paths: [
209209
'src/renderers/dom/**/*.js',
210210
'src/renderers/shared/**/*.js',

scripts/rollup/results.json

Lines changed: 90 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -25,92 +25,116 @@
2525
"gzip": 6703
2626
},
2727
"react-dom.development.js (UMD_DEV)": {
28-
"size": 639824,
29-
"gzip": 145999
28+
"size": 640604,
29+
"gzip": 146616
3030
},
3131
"react-dom.production.min.js (UMD_PROD)": {
32-
"size": 121920,
33-
"gzip": 38871
32+
"size": 121735,
33+
"gzip": 38859
3434
},
3535
"react-dom.development.js (NODE_DEV)": {
36-
"size": 599220,
37-
"gzip": 136402
36+
"size": 599999,
37+
"gzip": 136960
3838
},
3939
"react-dom.production.min.js (NODE_PROD)": {
40-
"size": 118838,
41-
"gzip": 37788
40+
"size": 118657,
41+
"gzip": 37769
4242
},
4343
"ReactDOMFiber-dev.js (FB_DEV)": {
44-
"size": 595749,
45-
"gzip": 135868
44+
"size": 596499,
45+
"gzip": 136409
4646
},
4747
"ReactDOMFiber-prod.js (FB_PROD)": {
48-
"size": 431003,
49-
"gzip": 96867
48+
"size": 430689,
49+
"gzip": 96928
5050
},
5151
"react-dom-test-utils.development.js (NODE_DEV)": {
52-
"size": 56074,
53-
"gzip": 14162
52+
"size": 55917,
53+
"gzip": 14141
5454
},
5555
"ReactTestUtils-dev.js (FB_DEV)": {
56-
"size": 55864,
57-
"gzip": 14128
56+
"size": 55707,
57+
"gzip": 14105
5858
},
59-
"ReactDOMServerStack-dev.js (FB_DEV)": {
60-
"size": 460810,
61-
"gzip": 111966
59+
"react-dom-unstable-native-dependencies.development.js (UMD_DEV)": {
60+
"size": 89486,
61+
"gzip": 22619
6262
},
63-
"ReactDOMServerStack-prod.js (FB_PROD)": {
64-
"size": 338222,
65-
"gzip": 81957
63+
"react-dom-unstable-native-dependencies.production.min.js (UMD_PROD)": {
64+
"size": 18338,
65+
"gzip": 5956
6666
},
67-
"react-dom-server.development.js (UMD_DEV)": {
68-
"size": 122993,
69-
"gzip": 31032
67+
"react-dom-unstable-native-dependencies.development.js (NODE_DEV)": {
68+
"size": 82914,
69+
"gzip": 20689
7070
},
71-
"react-dom-server.production.min.js (UMD_PROD)": {
72-
"size": 22819,
73-
"gzip": 8627
71+
"react-dom-unstable-native-dependencies.production.min.js (NODE_PROD)": {
72+
"size": 16978,
73+
"gzip": 5429
7474
},
75-
"react-dom-server.development.js (NODE_DEV)": {
76-
"size": 92141,
77-
"gzip": 23593
75+
"ReactDOMUnstableNativeDependencies-dev.js (FB_DEV)": {
76+
"size": 82613,
77+
"gzip": 20656
7878
},
79-
"react-dom-server.production.min.js (NODE_PROD)": {
80-
"size": 21214,
81-
"gzip": 8026
79+
"ReactDOMUnstableNativeDependencies-prod.js (FB_PROD)": {
80+
"size": 67256,
81+
"gzip": 16011
82+
},
83+
"react-dom-server.browser.development.js (UMD_DEV)": {
84+
"size": 123259,
85+
"gzip": 31130
86+
},
87+
"react-dom-server.browser.production.min.js (UMD_PROD)": {
88+
"size": 22069,
89+
"gzip": 8359
90+
},
91+
"react-dom-server.browser.development.js (NODE_DEV)": {
92+
"size": 92395,
93+
"gzip": 23727
94+
},
95+
"react-dom-server.browser.production.min.js (NODE_PROD)": {
96+
"size": 20470,
97+
"gzip": 7751
98+
},
99+
"ReactDOMServer-dev.js (FB_DEV)": {
100+
"size": 91478,
101+
"gzip": 23641
102+
},
103+
"ReactDOMServer-prod.js (FB_PROD)": {
104+
"size": 49904,
105+
"gzip": 13944
82106
},
83-
"ReactDOMServerStream-dev.js (FB_DEV)": {
84-
"size": 264750,
85-
"gzip": 67600
107+
"react-dom-server.node.development.js (NODE_DEV)": {
108+
"size": 95082,
109+
"gzip": 24294
86110
},
87-
"ReactDOMServerStream-prod.js (FB_PROD)": {
88-
"size": 198041,
89-
"gzip": 51047
111+
"react-dom-server.node.production.min.js (NODE_PROD)": {
112+
"size": 21375,
113+
"gzip": 8033
90114
},
91115
"react-art.development.js (UMD_DEV)": {
92-
"size": 373050,
93-
"gzip": 82463
116+
"size": 373020,
117+
"gzip": 82667
94118
},
95119
"react-art.production.min.js (UMD_PROD)": {
96-
"size": 94183,
97-
"gzip": 29145
120+
"size": 94024,
121+
"gzip": 29099
98122
},
99123
"react-art.development.js (NODE_DEV)": {
100-
"size": 294419,
101-
"gzip": 62436
124+
"size": 294390,
125+
"gzip": 62633
102126
},
103127
"react-art.production.min.js (NODE_PROD)": {
104-
"size": 55748,
105-
"gzip": 17250
128+
"size": 55594,
129+
"gzip": 17147
106130
},
107131
"ReactARTFiber-dev.js (FB_DEV)": {
108-
"size": 293279,
109-
"gzip": 62507
132+
"size": 293221,
133+
"gzip": 62686
110134
},
111135
"ReactARTFiber-prod.js (FB_PROD)": {
112-
"size": 220571,
113-
"gzip": 45660
136+
"size": 220287,
137+
"gzip": 45716
114138
},
115139
"ReactNativeStack-dev.js (RN_DEV)": {
116140
"size": 188445,
@@ -121,112 +145,32 @@
121145
"gzip": 26398
122146
},
123147
"ReactNativeFiber-dev.js (RN_DEV)": {
124-
"size": 290148,
125-
"gzip": 52574
148+
"size": 290448,
149+
"gzip": 52727
126150
},
127151
"ReactNativeFiber-prod.js (RN_PROD)": {
128-
"size": 224144,
129-
"gzip": 38909
152+
"size": 224421,
153+
"gzip": 39029
130154
},
131155
"react-test-renderer.development.js (NODE_DEV)": {
132-
"size": 291782,
133-
"gzip": 61299
156+
"size": 292225,
157+
"gzip": 61530
134158
},
135159
"ReactTestRendererFiber-dev.js (FB_DEV)": {
136-
"size": 290600,
137-
"gzip": 61383
160+
"size": 291017,
161+
"gzip": 61598
138162
},
139163
"react-test-renderer-shallow.development.js (NODE_DEV)": {
140-
"size": 10302,
141-
"gzip": 2587
164+
"size": 10145,
165+
"gzip": 2581
142166
},
143167
"ReactShallowRenderer-dev.js (FB_DEV)": {
144-
"size": 10208,
145-
"gzip": 2541
168+
"size": 10051,
169+
"gzip": 2533
146170
},
147171
"react-noop-renderer.development.js (NODE_DEV)": {
148-
"size": 285709,
149-
"gzip": 59710
150-
},
151-
"ReactHTMLString-dev.js (FB_DEV)": {
152-
"size": 265654,
153-
"gzip": 67793
154-
},
155-
"ReactHTMLString-prod.js (FB_PROD)": {
156-
"size": 197868,
157-
"gzip": 51197
158-
},
159-
"react-dom-stream.development.js (UMD_DEV)": {
160-
"size": 307410,
161-
"gzip": 77346
162-
},
163-
"react-dom-stream.production.min.js (UMD_PROD)": {
164-
"size": 66444,
165-
"gzip": 22648
166-
},
167-
"react-dom-stream.development.js (NODE_DEV)": {
168-
"size": 265257,
169-
"gzip": 67607
170-
},
171-
"react-dom-stream.production.min.js (NODE_PROD)": {
172-
"size": 62695,
173-
"gzip": 21279
174-
},
175-
"ReactHTMLStream-dev.js (FB_DEV)": {
176-
"size": 264745,
177-
"gzip": 67531
178-
},
179-
"ReactHTMLStream-prod.js (FB_PROD)": {
180-
"size": 197512,
181-
"gzip": 50920
182-
},
183-
"ReactDOMServer-dev.js (FB_DEV)": {
184-
"size": 91224,
185-
"gzip": 23517
186-
},
187-
"ReactDOMServer-prod.js (FB_PROD)": {
188-
"size": 55353,
189-
"gzip": 15240
190-
},
191-
"react-dom-node-stream.development.js (NODE_DEV)": {
192-
"size": 93872,
193-
"gzip": 24085
194-
},
195-
"react-dom-node-stream.production.min.js (NODE_PROD)": {
196-
"size": 22057,
197-
"gzip": 8338
198-
},
199-
"ReactDOMNodeStream-dev.js (FB_DEV)": {
200-
"size": 264918,
201-
"gzip": 67597
202-
},
203-
"ReactDOMNodeStream-prod.js (FB_PROD)": {
204-
"size": 197610,
205-
"gzip": 50956
206-
},
207-
"react-dom-unstable-native-dependencies.development.js (UMD_DEV)": {
208-
"size": 89486,
209-
"gzip": 22619
210-
},
211-
"react-dom-unstable-native-dependencies.production.min.js (UMD_PROD)": {
212-
"size": 18338,
213-
"gzip": 5956
214-
},
215-
"react-dom-unstable-native-dependencies.development.js (NODE_DEV)": {
216-
"size": 82914,
217-
"gzip": 20689
218-
},
219-
"react-dom-unstable-native-dependencies.production.min.js (NODE_PROD)": {
220-
"size": 16978,
221-
"gzip": 5429
222-
},
223-
"ReactDOMUnstableNativeDependencies-dev.js (FB_DEV)": {
224-
"size": 82613,
225-
"gzip": 20656
226-
},
227-
"ReactDOMUnstableNativeDependencies-prod.js (FB_PROD)": {
228-
"size": 67256,
229-
"gzip": 16011
172+
"size": 286152,
173+
"gzip": 59943
230174
}
231175
}
232176
}

src/node_modules/react-dom/node-stream.js renamed to src/node_modules/react-dom/server.browser.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/node_modules/react-dom/server.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)