diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index d96c32c1afd..4985ef49ecb 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -185,6 +185,12 @@ module.exports = function(api, opts, env) { removeImport: true, }, ], + // Optional chaining and nullish coalescing are supported in @babel/preset-env, + // but not yet supported in webpack due to support missing from acorn. + // These can be removed once webpack has support. + // See https://github.com/facebook/create-react-app/issues/8445#issuecomment-588512250 + require('@babel/plugin-proposal-optional-chaining').default, + require('@babel/plugin-proposal-nullish-coalescing-operator').default, ].filter(Boolean), overrides: [ isFlowEnabled && { diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index c2475279016..ac15c049c8e 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -24,7 +24,9 @@ "@babel/core": "7.8.4", "@babel/plugin-proposal-class-properties": "7.8.3", "@babel/plugin-proposal-decorators": "7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3", "@babel/plugin-proposal-numeric-separator": "7.8.3", + "@babel/plugin-proposal-optional-chaining": "7.8.3", "@babel/plugin-transform-flow-strip-types": "7.8.3", "@babel/plugin-transform-react-display-name": "7.8.3", "@babel/plugin-transform-runtime": "7.8.3",