From 457b812c262931239682e5cbb57c5bd5900d218b Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Mon, 10 Apr 2017 22:01:56 +0100 Subject: [PATCH] Fix ReactARTStack bundles to not include DOM Stack inside (#9394) * Move ReactDOMFrameScheduling.js to shared (between dom and art) * Fix ReactARTStack bundles to not include DOM Stack inside --- scripts/rollup/build.js | 9 +++- scripts/rollup/bundles.js | 6 +-- scripts/rollup/modules.js | 8 --- scripts/rollup/results.json | 50 +++++++++---------- .../ReactDOMFrameScheduling.js | 0 src/test/ReactTestUtils.js | 2 +- 6 files changed, 36 insertions(+), 39 deletions(-) rename src/renderers/{dom/fiber => shared}/ReactDOMFrameScheduling.js (100%) diff --git a/scripts/rollup/build.js b/scripts/rollup/build.js index b557a11926..7f3055b099 100644 --- a/scripts/rollup/build.js +++ b/scripts/rollup/build.js @@ -246,12 +246,19 @@ function getPlugins( manglePropertiesOnProd ) { const plugins = [ - replace(Modules.getDefaultReplaceModules(bundleType)), babel(updateBabelConfig(babelOpts, bundleType)), alias( Modules.getAliases(paths, bundleType, isRenderer, argv.extractErrors) ), ]; + + const replaceModules = Modules.getDefaultReplaceModules(bundleType); + // 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) { + plugins.unshift(replace(replaceModules)); + } + switch (bundleType) { case UMD_DEV: case NODE_DEV: diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js index fc221c5a58..69b04f0b73 100644 --- a/scripts/rollup/bundles.js +++ b/scripts/rollup/bundles.js @@ -169,6 +169,7 @@ const bundles = [ 'art/modes/current', 'art/modes/fast-noSideEffects', 'art/core/transform', + 'react-dom', ], fbEntry: 'src/renderers/art/ReactARTStack.js', hasteName: 'ReactARTStack', @@ -177,8 +178,6 @@ const bundles = [ manglePropertiesOnProd: false, name: 'react-art', paths: [ - // TODO: it relies on ReactDOMFrameScheduling. Need to move to shared/? - 'src/renderers/dom/**/*.js', 'src/renderers/art/**/*.js', 'src/renderers/shared/**/*.js', @@ -204,6 +203,7 @@ const bundles = [ 'art/modes/current', 'art/modes/fast-noSideEffects', 'art/core/transform', + 'react-dom', ], fbEntry: 'src/renderers/art/ReactARTFiber.js', hasteName: 'ReactARTFiber', @@ -212,8 +212,6 @@ const bundles = [ manglePropertiesOnProd: false, name: 'react-art', paths: [ - // TODO: it relies on ReactDOMFrameScheduling. Need to move to shared/? - 'src/renderers/dom/**/*.js', 'src/renderers/art/**/*.js', 'src/renderers/shared/**/*.js', diff --git a/scripts/rollup/modules.js b/scripts/rollup/modules.js index e6b1904a46..801b94e3c4 100644 --- a/scripts/rollup/modules.js +++ b/scripts/rollup/modules.js @@ -171,13 +171,6 @@ function getInternalModules() { }; } -function replaceInternalModules() { - // we inline these modules in the bundles rather than leave them as external - return { - "'react-dom'": `'${resolve('./src/renderers/dom/ReactDOM.js')}'`, - }; -} - function getFbjsModuleAliases(bundleType) { switch (bundleType) { case UMD_DEV: @@ -253,7 +246,6 @@ function getAliases(paths, bundleType, isRenderer, extractErrors) { function getDefaultReplaceModules(bundleType) { return Object.assign( {}, - replaceInternalModules(), replaceFbjsModuleAliases(bundleType), replaceDevOnlyStubbedModules(bundleType) ); diff --git a/scripts/rollup/results.json b/scripts/rollup/results.json index 9d4a85e8cc..88406fe9df 100644 --- a/scripts/rollup/results.json +++ b/scripts/rollup/results.json @@ -1,5 +1,5 @@ { - "branch": "remove-lib-in-source", + "branch": "bundle-fixes", "bundleSizes": { "react.development.js (UMD_DEV)": { "size": 116098, @@ -26,12 +26,12 @@ "gzip": 33035 }, "react-art.development.js (UMD_DEV)": { - "size": 339599, - "gzip": 75952 + "size": 339929, + "gzip": 76018 }, "react-art.production.min.js (UMD_PROD)": { - "size": 94939, - "gzip": 28977 + "size": 95013, + "gzip": 28991 }, "react.development.js (NODE_DEV)": { "size": 109110, @@ -90,28 +90,28 @@ "gzip": 80424 }, "ReactARTStack-dev.js (FB_DEV)": { - "size": 492651, - "gzip": 118470 + "size": 141589, + "gzip": 32280 }, "ReactARTStack-prod.js (FB_PROD)": { - "size": 365055, - "gzip": 87582 + "size": 99762, + "gzip": 22576 }, "react-art.development.js (NODE_DEV)": { - "size": 264816, - "gzip": 56881 + "size": 265123, + "gzip": 56951 }, "react-art.production.min.js (NODE_PROD)": { - "size": 56517, - "gzip": 17109 + "size": 56591, + "gzip": 17132 }, "ReactARTFiber-dev.js (FB_DEV)": { - "size": 263951, - "gzip": 56683 + "size": 264301, + "gzip": 56758 }, "ReactARTFiber-prod.js (FB_PROD)": { - "size": 205154, - "gzip": 43017 + "size": 205292, + "gzip": 43132 }, "ReactNativeStack.js (RN)": { "size": 233993, @@ -122,20 +122,20 @@ "gzip": 84001 }, "ReactTestRendererFiber-dev.js (FB_DEV)": { - "size": 261860, - "gzip": 55645 + "size": 262210, + "gzip": 55722 }, "ReactTestRendererStack-dev.js (FB_DEV)": { - "size": 151102, - "gzip": 34699 + "size": 151425, + "gzip": 34728 }, "react-noop-renderer.development.js (NODE_DEV)": { - "size": 253895, - "gzip": 53629 + "size": 254207, + "gzip": 53701 }, "react-test-renderer.development.js (NODE_DEV)": { - "size": 262734, - "gzip": 55847 + "size": 263041, + "gzip": 55919 } } } \ No newline at end of file diff --git a/src/renderers/dom/fiber/ReactDOMFrameScheduling.js b/src/renderers/shared/ReactDOMFrameScheduling.js similarity index 100% rename from src/renderers/dom/fiber/ReactDOMFrameScheduling.js rename to src/renderers/shared/ReactDOMFrameScheduling.js diff --git a/src/test/ReactTestUtils.js b/src/test/ReactTestUtils.js index d0ca2fe406..f320be4bd1 100644 --- a/src/test/ReactTestUtils.js +++ b/src/test/ReactTestUtils.js @@ -17,7 +17,7 @@ var EventPluginRegistry = require('EventPluginRegistry'); var EventPropagators = require('EventPropagators'); var React = require('react'); var ReactControlledComponent = require('ReactControlledComponent'); -var ReactDOM = require('react-dom'); +var ReactDOM = require('ReactDOM'); var ReactDOMComponentTree = require('ReactDOMComponentTree'); var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter'); var ReactFiberTreeReflection = require('ReactFiberTreeReflection');