From e303e00d065c2da9b6acec07ebc85337cba3f442 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 7 Apr 2017 16:17:36 +0100 Subject: [PATCH] Tweak Rollup setup (#9364) * Remove unused Rollup shim and exports * Add a way to build multiple bundles --- scripts/rollup/build.js | 32 +++++++++++++++++++++-------- scripts/rollup/modules.js | 33 ------------------------------ scripts/rollup/results.json | 40 ++++++++++++++++++------------------- 3 files changed, 44 insertions(+), 61 deletions(-) diff --git a/scripts/rollup/build.js b/scripts/rollup/build.js index 30d8d29e9a..b557a11926 100644 --- a/scripts/rollup/build.js +++ b/scripts/rollup/build.js @@ -31,8 +31,12 @@ const RN_DEV = Bundles.bundleTypes.RN_DEV; const RN_PROD = Bundles.bundleTypes.RN_PROD; const reactVersion = require('../../package.json').version; -const inputBundleType = argv.type; -const inputBundleName = argv._ && argv._[0]; +const requestedBundleTypes = (argv.type || '') + .split(',') + .map(type => type.toUpperCase()); +const requestedBundleNames = (argv._[0] || '') + .split(',') + .map(type => type.toLowerCase()); // used for when we property mangle with uglify/gcc const mangleRegex = new RegExp( @@ -294,14 +298,26 @@ function getPlugins( } function createBundle(bundle, bundleType) { - if ( - (inputBundleType && bundleType.indexOf(inputBundleType) === -1) || - bundle.bundleTypes.indexOf(bundleType) === -1 || - (inputBundleName && bundle.label.indexOf(inputBundleName) === -1) - ) { - // Skip this bundle because its config doesn't specify this target. + const shouldSkipBundleType = bundle.bundleTypes.indexOf(bundleType) === -1; + if (shouldSkipBundleType) { return Promise.resolve(); } + if (requestedBundleTypes.length > 0) { + const isAskingForDifferentType = requestedBundleTypes.every( + requestedType => bundleType.indexOf(requestedType) === -1 + ); + if (isAskingForDifferentType) { + return Promise.resolve(); + } + } + if (requestedBundleNames.length > 0) { + const isAskingForDifferentNames = requestedBundleNames.every( + requestedName => bundle.label.indexOf(requestedName) === -1 + ); + if (isAskingForDifferentNames) { + return Promise.resolve(); + } + } const filename = getFilename(bundle.name, bundle.hasteName, bundleType); const logKey = chalk.white.bold(filename) + diff --git a/scripts/rollup/modules.js b/scripts/rollup/modules.js index 2be3391469..832e19b05c 100644 --- a/scripts/rollup/modules.js +++ b/scripts/rollup/modules.js @@ -255,28 +255,6 @@ function getReactCurrentOwnerModuleAlias(bundleType, isRenderer) { } } -// this works almost identically to the ReactCurrentOwner shim above -const shimReactCheckPropTypes = resolve( - './scripts/rollup/shims/rollup/ReactCheckPropTypesRollupShim.js' -); -const realCheckPropTypes = resolve( - './src/isomorphic/classic/types/checkPropTypes.js' -); - -function getReactCheckPropTypesModuleAlias(bundleType, isRenderer) { - if (isRenderer) { - return { - checkPropTypes: shimReactCheckPropTypes, - 'react/lib/checkPropTypes': shimReactCheckPropTypes, - }; - } else { - return { - checkPropTypes: realCheckPropTypes, - 'react/lib/checkPropTypes': realCheckPropTypes, - }; - } -} - // this works almost identically to the ReactCurrentOwner shim above const shimReactComponentTreeHook = resolve( './scripts/rollup/shims/rollup/ReactComponentTreeHookRollupShim.js' @@ -323,7 +301,6 @@ function replaceDevOnlyStubbedModules(bundleType) { function getAliases(paths, bundleType, isRenderer, extractErrors) { return Object.assign( getReactCurrentOwnerModuleAlias(bundleType, isRenderer), - getReactCheckPropTypesModuleAlias(bundleType, isRenderer), getReactComponentTreeHookModuleAlias(bundleType, isRenderer), createModuleMap( paths, @@ -353,17 +330,7 @@ module.exports = { getExcludedHasteGlobs, getDefaultReplaceModules, getAliases, - createModuleMap, - getNodeModules, - replaceInternalModules, - getInternalModules, - getFbjsModuleAliases, - replaceFbjsModuleAliases, ignoreFBModules, ignoreReactNativeModules, getExternalModules, - getReactCurrentOwnerModuleAlias, - getReactCheckPropTypesModuleAlias, - getReactComponentTreeHookModuleAlias, - replaceDevOnlyStubbedModules, }; diff --git a/scripts/rollup/results.json b/scripts/rollup/results.json index f2b0466682..18e29d0eae 100644 --- a/scripts/rollup/results.json +++ b/scripts/rollup/results.json @@ -2,24 +2,24 @@ "branch": "master", "bundleSizes": { "react.development.js (UMD_DEV)": { - "size": 116402, - "gzip": 29598 + "size": 116208, + "gzip": 29564 }, "react.production.min.js (UMD_PROD)": { "size": 13719, "gzip": 5080 }, "react-dom.development.js (UMD_DEV)": { - "size": 564925, - "gzip": 130471 + "size": 564771, + "gzip": 130439 }, "react-dom.production.min.js (UMD_PROD)": { "size": 120123, "gzip": 37844 }, "react-dom-server.development.js (UMD_DEV)": { - "size": 477377, - "gzip": 115561 + "size": 477021, + "gzip": 115494 }, "react-dom-server.production.min.js (UMD_PROD)": { "size": 106349, @@ -34,56 +34,56 @@ "gzip": 28976 }, "react.development.js (NODE_DEV)": { - "size": 109416, - "gzip": 27554 + "size": 109222, + "gzip": 27519 }, "react.production.min.js (NODE_PROD)": { "size": 12615, "gzip": 4659 }, "React-dev.js (FB_DEV)": { - "size": 110901, - "gzip": 28115 + "size": 110705, + "gzip": 28075 }, "React-prod.js (FB_PROD)": { "size": 56205, "gzip": 14329 }, "ReactDOMStack-dev.js (FB_DEV)": { - "size": 523568, - "gzip": 124900 + "size": 523202, + "gzip": 124830 }, "ReactDOMStack-prod.js (FB_PROD)": { "size": 351707, "gzip": 84367 }, "react-dom.development.js (NODE_DEV)": { - "size": 543299, - "gzip": 125435 + "size": 543145, + "gzip": 125402 }, "react-dom.production.min.js (NODE_PROD)": { "size": 116802, "gzip": 36707 }, "ReactDOMFiber-dev.js (FB_DEV)": { - "size": 797779, - "gzip": 184190 + "size": 797617, + "gzip": 184146 }, "ReactDOMFiber-prod.js (FB_PROD)": { "size": 407360, "gzip": 93460 }, "react-dom-server.development.js (NODE_DEV)": { - "size": 446778, - "gzip": 107862 + "size": 446422, + "gzip": 107796 }, "react-dom-server.production.min.js (NODE_PROD)": { "size": 101204, "gzip": 31227 }, "ReactDOMServerStack-dev.js (FB_DEV)": { - "size": 445529, - "gzip": 107719 + "size": 445173, + "gzip": 107652 }, "ReactDOMServerStack-prod.js (FB_PROD)": { "size": 332974,