diff --git a/scripts/rollup/build.js b/scripts/rollup/build.js index 405c0b345bc6..362f6a36281d 100644 --- a/scripts/rollup/build.js +++ b/scripts/rollup/build.js @@ -289,7 +289,8 @@ function getPlugins( hasteName, isRenderer, manglePropertiesOnProd, - useFiber + useFiber, + modulesToStub ) { const plugins = [ babel(updateBabelConfig(babelOpts, bundleType)), @@ -298,7 +299,11 @@ function getPlugins( ), ]; - const replaceModules = Modules.getDefaultReplaceModules(bundleType); + const replaceModules = Modules.getDefaultReplaceModules( + bundleType, + modulesToStub + ); + // We have to do this check because Rollup breaks on empty object. // TODO: file an issue with rollup-plugin-replace. if (Object.keys(replaceModules).length > 0) { @@ -420,7 +425,8 @@ function createBundle(bundle, bundleType) { bundle.hasteName, bundle.isRenderer, bundle.manglePropertiesOnProd, - bundle.useFiber + bundle.useFiber, + bundle.modulesToStub ), }) .then(result => diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js index fb7e04b39cd5..dcce33ae68a7 100644 --- a/scripts/rollup/bundles.js +++ b/scripts/rollup/bundles.js @@ -317,6 +317,12 @@ const bundles = [ 'src/shared/**/*.js', ], useFiber: false, + modulesToStub: [ + "'createReactNativeFiberComponentClass'", + "'ReactNativeFiberRenderer'", + "'findNumericNodeHandleFiber'", + "'ReactNativeFiber'", + ], }, { babelOpts: babelOptsReact, @@ -353,6 +359,11 @@ const bundles = [ 'src/shared/**/*.js', ], useFiber: true, + modulesToStub: [ + "'createReactNativeComponentClass'", + "'findNumericNodeHandleStack'", + "'ReactNativeStack'", + ], }, /******* React Test Renderer *******/ diff --git a/scripts/rollup/modules.js b/scripts/rollup/modules.js index 468353360c47..027d6c6fdcbd 100644 --- a/scripts/rollup/modules.js +++ b/scripts/rollup/modules.js @@ -265,6 +265,18 @@ function replaceLegacyModuleAliases(bundleType) { } } +function replaceBundleStubModules(bundleModulesToStub) { + const stubbedModules = {}; + + if (Array.isArray(bundleModulesToStub)) { + bundleModulesToStub.forEach(module => { + stubbedModules[module] = devOnlyModuleStub; + }); + } + + return stubbedModules; +} + function getAliases(paths, bundleType, isRenderer, extractErrors) { return Object.assign( createModuleMap( @@ -278,12 +290,13 @@ function getAliases(paths, bundleType, isRenderer, extractErrors) { ); } -function getDefaultReplaceModules(bundleType) { +function getDefaultReplaceModules(bundleType, bundleModulesToStub) { return Object.assign( {}, replaceFbjsModuleAliases(bundleType), replaceDevOnlyStubbedModules(bundleType), - replaceLegacyModuleAliases(bundleType) + replaceLegacyModuleAliases(bundleType), + replaceBundleStubModules(bundleModulesToStub) ); } diff --git a/scripts/rollup/results.json b/scripts/rollup/results.json index ac700869306b..454be180b26b 100644 --- a/scripts/rollup/results.json +++ b/scripts/rollup/results.json @@ -17,12 +17,12 @@ "gzip": 38682 }, "react-dom-server.development.js (UMD_DEV)": { - "size": 525896, - "gzip": 126687 + "size": 525947, + "gzip": 126689 }, "react-dom-server.production.min.js (UMD_PROD)": { - "size": 111581, - "gzip": 34959 + "size": 111505, + "gzip": 34936 }, "react-art.development.js (UMD_DEV)": { "size": 349191, @@ -73,12 +73,12 @@ "gzip": 94091 }, "react-dom-server.development.js (NODE_DEV)": { - "size": 474459, - "gzip": 114087 + "size": 474510, + "gzip": 114092 }, "react-dom-server.production.min.js (NODE_PROD)": { - "size": 105956, - "gzip": 32782 + "size": 105880, + "gzip": 32763 }, "ReactDOMServerStack-dev.js (FB_DEV)": { "size": 455996, @@ -157,28 +157,28 @@ "gzip": 2234 }, "ReactDOMServerStream-dev.js (FB_DEV)": { - "size": 472928, - "gzip": 113934 + "size": 472979, + "gzip": 113937 }, "ReactDOMServerStream-prod.js (FB_PROD)": { - "size": 345931, - "gzip": 83505 + "size": 345258, + "gzip": 83320 }, "ReactNativeStack-dev.js (RN_DEV)": { - "size": 351200, - "gzip": 63905 + "size": 183071, + "gzip": 35604 }, "ReactNativeStack-prod.js (RN_PROD)": { - "size": 269602, - "gzip": 46634 + "size": 131236, + "gzip": 24775 }, "ReactNativeFiber-dev.js (RN_DEV)": { - "size": 328134, - "gzip": 59569 + "size": 271213, + "gzip": 49113 }, "ReactNativeFiber-prod.js (RN_PROD)": { - "size": 248866, - "gzip": 43107 + "size": 207321, + "gzip": 35756 } } } \ No newline at end of file