From 4bb0dc60af1926640bd024b9445f528b16904eee Mon Sep 17 00:00:00 2001 From: Tim Yung Date: Wed, 14 Aug 2024 15:48:02 -0700 Subject: [PATCH 1/3] Build `react-dom` in `builds/facebook-fbsource` --- .github/workflows/runtime_commit_artifacts.yml | 1 + scripts/rollup/bundles.js | 11 +++++++++-- scripts/rollup/packaging.js | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/runtime_commit_artifacts.yml b/.github/workflows/runtime_commit_artifacts.yml index f47eb3ff360e9..ed0c59caf883e 100644 --- a/.github/workflows/runtime_commit_artifacts.yml +++ b/.github/workflows/runtime_commit_artifacts.yml @@ -125,6 +125,7 @@ jobs: mv build/react-native/shims/ $BASE_FOLDER/react-native-github/Libraries/Renderer/ mv build/facebook-react-native/scheduler/cjs/ $BASE_FOLDER/RKJSModules/vendor/react/scheduler/ mv build/facebook-react-native/react/cjs/ $BASE_FOLDER/RKJSModules/vendor/react/react/ + mv build/facebook-react-native/react/dom/ $BASE_FOLDER/RKJSModules/vendor/react/react-dom/ mv build/facebook-react-native/react-is/cjs/ $BASE_FOLDER/RKJSModules/vendor/react/react-is/ mv build/facebook-react-native/react-test-renderer/cjs/ $BASE_FOLDER/RKJSModules/vendor/react/react-test-renderer/ diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js index 081b91b9d0b80..1bf8e53b296c1 100644 --- a/scripts/rollup/bundles.js +++ b/scripts/rollup/bundles.js @@ -206,13 +206,20 @@ const bundles = [ }, /******* React DOM FB *******/ { - bundleTypes: [FB_WWW_DEV, FB_WWW_PROD, FB_WWW_PROFILING], + bundleTypes: [ + FB_WWW_DEV, + FB_WWW_PROD, + FB_WWW_PROFILING, + RN_FB_DEV, + RN_FB_PROD, + RN_FB_PROFILING, + ], moduleType: RENDERER, entry: 'react-dom/src/ReactDOMFB.js', global: 'ReactDOM', minifyWithProdErrorCodes: true, wrapWithModuleBoundaries: true, - externals: ['react'], + externals: ['react', 'ReactNativeInternalFeatureFlags'], }, /******* React DOM React Server *******/ diff --git a/scripts/rollup/packaging.js b/scripts/rollup/packaging.js index 7c433fc2dd330..bc83cb8789eb8 100644 --- a/scripts/rollup/packaging.js +++ b/scripts/rollup/packaging.js @@ -76,6 +76,7 @@ function getBundleOutputPath(bundle, bundleType, filename, packageName) { switch (packageName) { case 'scheduler': case 'react': + case 'react-dom': case 'react-is': case 'react-test-renderer': return `build/facebook-react-native/${packageName}/cjs/${filename}`; From 5054099a521ae848337550d540f479dd172f566f Mon Sep 17 00:00:00 2001 From: Tim Yung Date: Thu, 15 Aug 2024 13:22:26 -0700 Subject: [PATCH 2/3] Switch to ReactDOM (non-FB) --- scripts/rollup/bundles.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js index 1bf8e53b296c1..c5f456a5783ef 100644 --- a/scripts/rollup/bundles.js +++ b/scripts/rollup/bundles.js @@ -175,13 +175,19 @@ const bundles = [ /******* React DOM *******/ { - bundleTypes: [NODE_DEV, NODE_PROD], + bundleTypes: [ + NODE_DEV, + NODE_PROD, + RN_FB_DEV, + RN_FB_PROD, + RN_FB_PROFILING, + ], moduleType: RENDERER, entry: 'react-dom', global: 'ReactDOM', minifyWithProdErrorCodes: true, wrapWithModuleBoundaries: true, - externals: ['react'], + externals: ['react', 'ReactNativeInternalFeatureFlags'], }, /******* React DOM Client *******/ { @@ -206,20 +212,13 @@ const bundles = [ }, /******* React DOM FB *******/ { - bundleTypes: [ - FB_WWW_DEV, - FB_WWW_PROD, - FB_WWW_PROFILING, - RN_FB_DEV, - RN_FB_PROD, - RN_FB_PROFILING, - ], + bundleTypes: [FB_WWW_DEV, FB_WWW_PROD, FB_WWW_PROFILING], moduleType: RENDERER, entry: 'react-dom/src/ReactDOMFB.js', global: 'ReactDOM', minifyWithProdErrorCodes: true, wrapWithModuleBoundaries: true, - externals: ['react', 'ReactNativeInternalFeatureFlags'], + externals: ['react'], }, /******* React DOM React Server *******/ From 2531d132fdf45e4ae2e57f7eba28cb76952bd659 Mon Sep 17 00:00:00 2001 From: Tim Yung Date: Thu, 15 Aug 2024 16:19:49 -0700 Subject: [PATCH 3/3] Build `react-dom/*` dependencies for fbsource --- scripts/rollup/bundles.js | 58 +++++++++++++++++++++++++++++++++------ 1 file changed, 49 insertions(+), 9 deletions(-) diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js index c5f456a5783ef..26a88fb00811d 100644 --- a/scripts/rollup/bundles.js +++ b/scripts/rollup/bundles.js @@ -175,20 +175,15 @@ const bundles = [ /******* React DOM *******/ { - bundleTypes: [ - NODE_DEV, - NODE_PROD, - RN_FB_DEV, - RN_FB_PROD, - RN_FB_PROFILING, - ], + bundleTypes: [NODE_DEV, NODE_PROD], moduleType: RENDERER, entry: 'react-dom', global: 'ReactDOM', minifyWithProdErrorCodes: true, wrapWithModuleBoundaries: true, - externals: ['react', 'ReactNativeInternalFeatureFlags'], + externals: ['react'], }, + /******* React DOM Client *******/ { bundleTypes: [NODE_DEV, NODE_PROD], @@ -210,7 +205,8 @@ const bundles = [ wrapWithModuleBoundaries: true, externals: ['react', 'react-dom'], }, - /******* React DOM FB *******/ + + /******* React DOM (www) *******/ { bundleTypes: [FB_WWW_DEV, FB_WWW_PROD, FB_WWW_PROFILING], moduleType: RENDERER, @@ -221,6 +217,50 @@ const bundles = [ externals: ['react'], }, + /******* React DOM (fbsource) *******/ + { + bundleTypes: [RN_FB_DEV, RN_FB_PROD, RN_FB_PROFILING], + moduleType: RENDERER, + entry: 'react-dom', + global: 'ReactDOM', + minifyWithProdErrorCodes: true, + wrapWithModuleBoundaries: false, + externals: ['react', 'ReactNativeInternalFeatureFlags'], + }, + + /******* React DOM Client (fbsource) *******/ + { + bundleTypes: [RN_FB_DEV, RN_FB_PROD, RN_FB_PROFILING], + moduleType: RENDERER, + entry: 'react-dom/client', + global: 'ReactDOMClient', + minifyWithProdErrorCodes: true, + wrapWithModuleBoundaries: false, + externals: ['react', 'react-dom', 'ReactNativeInternalFeatureFlags'], + }, + + /******* React DOM Profiling (fbsource) *******/ + { + bundleTypes: [RN_FB_DEV, RN_FB_PROD, RN_FB_PROFILING], + moduleType: RENDERER, + entry: 'react-dom/profiling', + global: 'ReactDOMProfiling', + minifyWithProdErrorCodes: true, + wrapWithModuleBoundaries: true, + externals: ['react', 'react-dom', 'ReactNativeInternalFeatureFlags'], + }, + + /******* React DOM Test Utils (fbsource) *******/ + { + moduleType: RENDERER_UTILS, + bundleTypes: [RN_FB_DEV, RN_FB_PROD, RN_FB_PROFILING], + entry: 'react-dom/test-utils', + global: 'ReactDOMTestUtils', + minifyWithProdErrorCodes: false, + wrapWithModuleBoundaries: false, + externals: ['react', 'react-dom', 'ReactNativeInternalFeatureFlags'], + }, + /******* React DOM React Server *******/ { bundleTypes: [NODE_DEV, NODE_PROD],