@@ -12,6 +12,7 @@ const fs = require('fs');
12
12
const path = require ( 'path' ) ;
13
13
const webpack = require ( 'webpack' ) ;
14
14
const resolve = require ( 'resolve' ) ;
15
+ const semver = require ( 'semver' ) ;
15
16
const PnpWebpackPlugin = require ( 'pnp-webpack-plugin' ) ;
16
17
const HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
17
18
const CaseSensitivePathsPlugin = require ( 'case-sensitive-paths-webpack-plugin' ) ;
@@ -33,6 +34,7 @@ const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin');
33
34
const ForkTsCheckerWebpackPlugin = require ( 'react-dev-utils/ForkTsCheckerWebpackPlugin' ) ;
34
35
const typescriptFormatter = require ( 'react-dev-utils/typescriptFormatter' ) ;
35
36
const ReactRefreshWebpackPlugin = require ( '@pmmmwh/react-refresh-webpack-plugin' ) ;
37
+ const react = require ( require . resolve ( 'react' , { paths : [ paths . appPath ] } ) ) ;
36
38
// @remove -on-eject-begin
37
39
const getCacheIdentifier = require ( 'react-dev-utils/getCacheIdentifier' ) ;
38
40
// @remove -on-eject-end
@@ -400,7 +402,16 @@ module.exports = function (webpackEnv) {
400
402
// @remove -on-eject-begin
401
403
babelrc : false ,
402
404
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
+ ] ,
404
415
// Make sure we have a unique cache identifier, erring on the
405
416
// side of caution.
406
417
// We remove this when the user ejects because the default
0 commit comments