Tweak Rollup setup (#9364)
* Remove unused Rollup shim and exports * Add a way to build multiple bundles
Dan Abramov committed
Apr 7, 2017 at 16:17 UTC
e303e00d065c2da9b6acec07ebc85337cba3f442
3 files changed
+44
-61
scripts/rollup/build.js
+24
-8
@@ -31,8 +31,12 @@ const RN_DEV = Bundles.bundleTypes.RN_DEV;
31
const RN_PROD = Bundles.bundleTypes.RN_PROD;
32
33
const reactVersion = require('../../package.json').version;
34
-const inputBundleType = argv.type;
35
-const inputBundleName = argv._ && argv._[0];
34
+const requestedBundleTypes = (argv.type || '')
35
+ .split(',')
36
+ .map(type => type.toUpperCase());
37
+const requestedBundleNames = (argv._[0] || '')
38
+ .split(',')
39
+ .map(type => type.toLowerCase());
40
41
// used for when we property mangle with uglify/gcc
42
const mangleRegex = new RegExp(
@@ -294,14 +298,26 @@ function getPlugins(
298
}
299
300
function createBundle(bundle, bundleType) {
297
- if (
298
- (inputBundleType && bundleType.indexOf(inputBundleType) === -1) ||
299
- bundle.bundleTypes.indexOf(bundleType) === -1 ||
300
- (inputBundleName && bundle.label.indexOf(inputBundleName) === -1)
301
- ) {
302
- // Skip this bundle because its config doesn't specify this target.
301
+ const shouldSkipBundleType = bundle.bundleTypes.indexOf(bundleType) === -1;
302
+ if (shouldSkipBundleType) {
303
return Promise.resolve();
304
}
305
+ if (requestedBundleTypes.length > 0) {
306
+ const isAskingForDifferentType = requestedBundleTypes.every(
307
+ requestedType => bundleType.indexOf(requestedType) === -1
308
+ );
309
+ if (isAskingForDifferentType) {
310
+ return Promise.resolve();
311
+ }
312
+ }
313
+ if (requestedBundleNames.length > 0) {
314
+ const isAskingForDifferentNames = requestedBundleNames.every(
315
+ requestedName => bundle.label.indexOf(requestedName) === -1
316
+ );
317
+ if (isAskingForDifferentNames) {
318
+ return Promise.resolve();
319
+ }
320
+ }
321
322
const filename = getFilename(bundle.name, bundle.hasteName, bundleType);
323
const logKey = chalk.white.bold(filename) +
scripts/rollup/modules.js
-33
@@ -255,28 +255,6 @@ function getReactCurrentOwnerModuleAlias(bundleType, isRenderer) {
255
}
256
}
257
258
-// this works almost identically to the ReactCurrentOwner shim above
259
-const shimReactCheckPropTypes = resolve(
260
- './scripts/rollup/shims/rollup/ReactCheckPropTypesRollupShim.js'
261
-);
262
-const realCheckPropTypes = resolve(
263
- './src/isomorphic/classic/types/checkPropTypes.js'
264
-);
265
-
266
-function getReactCheckPropTypesModuleAlias(bundleType, isRenderer) {
267
- if (isRenderer) {
268
- return {
269
- checkPropTypes: shimReactCheckPropTypes,
270
- 'react/lib/checkPropTypes': shimReactCheckPropTypes,
271
- };
272
- } else {
273
- return {
274
- checkPropTypes: realCheckPropTypes,
275
- 'react/lib/checkPropTypes': realCheckPropTypes,
276
- };
277
- }
278
-}
279
-
258
// this works almost identically to the ReactCurrentOwner shim above
259
const shimReactComponentTreeHook = resolve(
260
'./scripts/rollup/shims/rollup/ReactComponentTreeHookRollupShim.js'
@@ -323,7 +301,6 @@ function replaceDevOnlyStubbedModules(bundleType) {
301
function getAliases(paths, bundleType, isRenderer, extractErrors) {
302
return Object.assign(
303
getReactCurrentOwnerModuleAlias(bundleType, isRenderer),
326
- getReactCheckPropTypesModuleAlias(bundleType, isRenderer),
304
getReactComponentTreeHookModuleAlias(bundleType, isRenderer),
305
createModuleMap(
306
paths,
@@ -353,17 +330,7 @@ module.exports = {
330
getExcludedHasteGlobs,
331
getDefaultReplaceModules,
332
getAliases,
356
- createModuleMap,
357
- getNodeModules,
358
- replaceInternalModules,
359
- getInternalModules,
360
- getFbjsModuleAliases,
361
- replaceFbjsModuleAliases,
333
ignoreFBModules,
334
ignoreReactNativeModules,
335
getExternalModules,
365
- getReactCurrentOwnerModuleAlias,
366
- getReactCheckPropTypesModuleAlias,
367
- getReactComponentTreeHookModuleAlias,
368
- replaceDevOnlyStubbedModules,
336
};
scripts/rollup/results.json
+20
-20
@@ -2,24 +2,24 @@
2
"branch": "master",
3
"bundleSizes": {
4
"react.development.js (UMD_DEV)": {
5
- "size": 116402,
6
- "gzip": 29598
5
+ "size": 116208,
6
+ "gzip": 29564
7
},
8
"react.production.min.js (UMD_PROD)": {
9
"size": 13719,
10
"gzip": 5080
11
},
12
"react-dom.development.js (UMD_DEV)": {
13
- "size": 564925,
14
- "gzip": 130471
13
+ "size": 564771,
14
+ "gzip": 130439
15
},
16
"react-dom.production.min.js (UMD_PROD)": {
17
"size": 120123,
18
"gzip": 37844
19
},
20
"react-dom-server.development.js (UMD_DEV)": {
21
- "size": 477377,
22
- "gzip": 115561
21
+ "size": 477021,
22
+ "gzip": 115494
23
},
24
"react-dom-server.production.min.js (UMD_PROD)": {
25
"size": 106349,
@@ -34,56 +34,56 @@
34
"gzip": 28976
35
},
36
"react.development.js (NODE_DEV)": {
37
- "size": 109416,
38
- "gzip": 27554
37
+ "size": 109222,
38
+ "gzip": 27519
39
},
40
"react.production.min.js (NODE_PROD)": {
41
"size": 12615,
42
"gzip": 4659
43
},
44
"React-dev.js (FB_DEV)": {
45
- "size": 110901,
46
- "gzip": 28115
45
+ "size": 110705,
46
+ "gzip": 28075
47
},
48
"React-prod.js (FB_PROD)": {
49
"size": 56205,
50
"gzip": 14329
51
},
52
"ReactDOMStack-dev.js (FB_DEV)": {
53
- "size": 523568,
54
- "gzip": 124900
53
+ "size": 523202,
54
+ "gzip": 124830
55
},
56
"ReactDOMStack-prod.js (FB_PROD)": {
57
"size": 351707,
58
"gzip": 84367
59
},
60
"react-dom.development.js (NODE_DEV)": {
61
- "size": 543299,
62
- "gzip": 125435
61
+ "size": 543145,
62
+ "gzip": 125402
63
},
64
"react-dom.production.min.js (NODE_PROD)": {
65
"size": 116802,
66
"gzip": 36707
67
},
68
"ReactDOMFiber-dev.js (FB_DEV)": {
69
- "size": 797779,
70
- "gzip": 184190
69
+ "size": 797617,
70
+ "gzip": 184146
71
},
72
"ReactDOMFiber-prod.js (FB_PROD)": {
73
"size": 407360,
74
"gzip": 93460
75
},
76
"react-dom-server.development.js (NODE_DEV)": {
77
- "size": 446778,
78
- "gzip": 107862
77
+ "size": 446422,
78
+ "gzip": 107796
79
},
80
"react-dom-server.production.min.js (NODE_PROD)": {
81
"size": 101204,
82
"gzip": 31227
83
},
84
"ReactDOMServerStack-dev.js (FB_DEV)": {
85
- "size": 445529,
86
- "gzip": 107719
85
+ "size": 445173,
86
+ "gzip": 107652
87
},
88
"ReactDOMServerStack-prod.js (FB_PROD)": {
89
"size": 332974,