dillon1000/react
Commit
Browse files [Flight][Float] Preinitialize module imports during SSR (#27314)
Currently when we SSR a Flight response we do not emit any resources for module imports. This means that when the client hydrates it won't have already loaded the necessary scripts to satisfy the Imports defined in the Flight payload which will lead to a delay in hydration completing. This change updates `react-server-dom-webpack` and `react-server-dom-esm` to emit async script tags in the head when we encounter a modules in the flight response. To support this we need some additional server configuration. We need to know the path prefix for chunk loading and whether the chunks will load with CORS or not (and if so with what configuration).
Changed paths48 files
First-parent comparisonfixtures/flight-esm/.nvmrc AddedM fixtures/flight-esm/server/global.js ModifiedM fixtures/flight-esm/src/App.js ModifiedM fixtures/flight-esm/yarn.lock ModifiedA fixtures/flight/.nvmrc AddedM fixtures/flight/server/global.js ModifiedM packages/react-client/src/ReactFlightClient.js ModifiedM packages/react-client/src/forks/ReactFlightClientConfig.custom.js ModifiedM packages/react-client/src/forks/ReactFlightClientConfig.dom-browser-esm.js ModifiedM packages/react-client/src/forks/ReactFlightClientConfig.dom-browser.js ModifiedM packages/react-client/src/forks/ReactFlightClientConfig.dom-bun.js ModifiedM packages/react-client/src/forks/ReactFlightClientConfig.dom-edge-webpack.js ModifiedM packages/react-client/src/forks/ReactFlightClientConfig.dom-legacy.js ModifiedM packages/react-client/src/forks/ReactFlightClientConfig.dom-node-esm.js ModifiedM packages/react-client/src/forks/ReactFlightClientConfig.dom-node-webpack.js ModifiedM packages/react-client/src/forks/ReactFlightClientConfig.dom-node.js ModifiedM packages/react-dom-bindings/src/shared/ReactFlightClientConfigDOM.js ModifiedA packages/react-dom-bindings/src/shared/crossOriginStrings.js AddedM packages/react-dom/src/shared/ReactDOMFloat.js ModifiedM packages/react-dom/src/shared/ReactDOMTypes.js ModifiedM packages/react-noop-renderer/src/ReactNoopFlightClient.js ModifiedR packages/react-server-dom-esm/src/ReactFlightClientConfigESMBundler.js →packages/react-server-dom-esm/src/ReactFlightClientConfigBundlerESM.js RenamedA packages/react-server-dom-esm/src/ReactFlightClientConfigTargetESMBrowser.js AddedA packages/react-server-dom-esm/src/ReactFlightClientConfigTargetESMServer.js AddedM packages/react-server-dom-esm/src/ReactFlightDOMClientBrowser.js ModifiedM packages/react-server-dom-esm/src/ReactFlightDOMClientNode.js ModifiedR packages/react-server-dom-webpack/src/ReactFlightClientConfigNodeBundler.js →packages/react-server-dom-webpack/src/ReactFlightClientConfigBundlerNode.js RenamedR packages/react-server-dom-webpack/src/ReactFlightClientConfigWebpackBundler.js →packages/react-server-dom-webpack/src/ReactFlightClientConfigBundlerWebpack.js RenamedA packages/react-server-dom-webpack/src/ReactFlightClientConfigBundlerWebpackBrowser.js AddedA packages/react-server-dom-webpack/src/ReactFlightClientConfigBundlerWebpackServer.js AddedA packages/react-server-dom-webpack/src/ReactFlightClientConfigTargetWebpackBrowser.js AddedA packages/react-server-dom-webpack/src/ReactFlightClientConfigTargetWebpackServer.js AddedM packages/react-server-dom-webpack/src/ReactFlightDOMClientBrowser.js ModifiedM packages/react-server-dom-webpack/src/ReactFlightDOMClientEdge.js ModifiedM packages/react-server-dom-webpack/src/ReactFlightDOMClientNode.js ModifiedM packages/react-server-dom-webpack/src/ReactFlightServerConfigWebpackBundler.js ModifiedM packages/react-server-dom-webpack/src/ReactFlightWebpackPlugin.js ModifiedM packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js ModifiedM packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js ModifiedM packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMForm-test.js ModifiedM packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMNode-test.js ModifiedM packages/react-server-dom-webpack/src/__tests__/utils/WebpackMock.js ModifiedA packages/react-server-dom-webpack/src/shared/ReactFlightImportMetadata.js AddedM packages/react/src/__tests__/ReactFetch-test.js ModifiedM packages/react/src/__tests__/ReactFetchEdge-test.js ModifiedM scripts/flow/environment.js ModifiedM scripts/jest/setupHostConfigs.js ModifiedM scripts/shared/inlinedHostConfigs.js ModifiedPatch
Files changed
Rendering syntax-highlighted changes…