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

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,