@@ -12,6 +12,7 @@ const fs = require('fs');
1212const path = require ( 'path' ) ;
1313const webpack = require ( 'webpack' ) ;
1414const resolve = require ( 'resolve' ) ;
15+ const semver = require ( 'semver' ) ;
1516const PnpWebpackPlugin = require ( 'pnp-webpack-plugin' ) ;
1617const HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
1718const CaseSensitivePathsPlugin = require ( 'case-sensitive-paths-webpack-plugin' ) ;
@@ -33,6 +34,7 @@ const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin');
3334const ForkTsCheckerWebpackPlugin = require ( 'react-dev-utils/ForkTsCheckerWebpackPlugin' ) ;
3435const typescriptFormatter = require ( 'react-dev-utils/typescriptFormatter' ) ;
3536const ReactRefreshWebpackPlugin = require ( '@pmmmwh/react-refresh-webpack-plugin' ) ;
37+ const react = require ( require . resolve ( 'react' , { paths : [ paths . appPath ] } ) ) ;
3638// @remove -on-eject-begin
3739const getCacheIdentifier = require ( 'react-dev-utils/getCacheIdentifier' ) ;
3840// @remove -on-eject-end
@@ -400,7 +402,16 @@ module.exports = function (webpackEnv) {
400402 // @remove -on-eject-begin
401403 babelrc : false ,
402404 configFile : false ,
403- presets : [ require . resolve ( 'babel-preset-react-app' ) ] ,
405+ presets : [
406+ [
407+ require . resolve ( 'babel-preset-react-app' ) ,
408+ {
409+ runtime : semver . gte ( react . version , '17.0.0-alpha.0' )
410+ ? 'automatic'
411+ : 'classic' ,
412+ } ,
413+ ] ,
414+ ] ,
404415 // Make sure we have a unique cache identifier, erring on the
405416 // side of caution.
406417 // We remove this when the user ejects because the default
0 commit comments