@@ -14,6 +14,7 @@ const fs = require('fs');
14
14
const path = require ( 'path' ) ;
15
15
const webpack = require ( 'webpack' ) ;
16
16
const resolve = require ( 'resolve' ) ;
17
+ const semver = require ( 'semver' ) ;
17
18
const PnpWebpackPlugin = require ( 'pnp-webpack-plugin' ) ;
18
19
const HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
19
20
const CaseSensitivePathsPlugin = require ( 'case-sensitive-paths-webpack-plugin' ) ;
@@ -35,6 +36,7 @@ const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin');
35
36
const ForkTsCheckerWebpackPlugin = require ( 'react-dev-utils/ForkTsCheckerWebpackPlugin' ) ;
36
37
const typescriptFormatter = require ( 'react-dev-utils/typescriptFormatter' ) ;
37
38
const ReactRefreshWebpackPlugin = require ( '@pmmmwh/react-refresh-webpack-plugin' ) ;
39
+ const react = require ( require . resolve ( 'react' , { paths : [ paths . appPath ] } ) ) ;
38
40
// @remove -on-eject-begin
39
41
const getCacheIdentifier = require ( 'react-dev-utils/getCacheIdentifier' ) ;
40
42
// @remove -on-eject-end
@@ -402,7 +404,16 @@ module.exports = function (webpackEnv) {
402
404
// @remove -on-eject-begin
403
405
babelrc : false ,
404
406
configFile : false ,
405
- presets : [ require . resolve ( 'babel-preset-react-app' ) ] ,
407
+ presets : [
408
+ [
409
+ require . resolve ( 'babel-preset-react-app' ) ,
410
+ {
411
+ runtime : semver . gte ( react . version , '17.0.0-alpha.0' )
412
+ ? 'automatic'
413
+ : 'classic' ,
414
+ } ,
415
+ ] ,
416
+ ] ,
406
417
// Make sure we have a unique cache identifier, erring on the
407
418
// side of caution.
408
419
// We remove this when the user ejects because the default
0 commit comments