forked from facebook/create-react-app
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Update dependencies in react-scripts * Add first pass of working dependencies for babel-preset-react-app and react-scripts * Bump more dependency versions * Adjust more versions and edit fix options * Restore functionality of old preset * Disable Uglify in iframe webpack * Apply prettier * Re-enable cache in dev and clean deps * Lock packages and move babel/core to dep in preset * Bump babel-jest * Re-enable uglify * Nest forceAllTransforms correctly in webpack config * Install babel-core bridge for jest * Add jest-cli and babel-core bridge to make tests in react-error-overlay pass * Re-enable transform-dynamic-import * Add dynamic import syntax support back * Use new babel in kitchensink * Transform modules in test * Revert "Transform modules in test" This reverts commit 539e46a. * Attempt fix for ejected tests * try this * Add regenerator back * Bump babel deps to beta.34 * Remove bad files * Use default when requiring babel transform plugin * Bump deps * Try the fix? * Oopsie * Remove some weird things * Run Babel on react-error-overlay tests * Try fixing kitchensink * Use new API for codeFrame * Add missing (?) babelrc * Maybe this helps? * Maybe fix mocha * I shouldn't have deleted this 🤦
- Loading branch information
Showing
14 changed files
with
178 additions
and
163 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,138 +6,117 @@ | |
*/ | ||
'use strict'; | ||
|
||
const plugins = [ | ||
// Experimental macros support. Will be documented after it's had some time | ||
// in the wild. | ||
require.resolve('babel-plugin-macros'), | ||
// Necessary to include regardless of the environment because | ||
// in practice some other transforms (such as object-rest-spread) | ||
// don't work without it: https://github.com/babel/babel/issues/7215 | ||
require.resolve('babel-plugin-transform-es2015-destructuring'), | ||
// class { handleClick = () => { } } | ||
require.resolve('babel-plugin-transform-class-properties'), | ||
// The following two plugins use Object.assign directly, instead of Babel's | ||
// extends helper. Note that this assumes `Object.assign` is available. | ||
// { ...todo, completed: true } | ||
[ | ||
require.resolve('babel-plugin-transform-object-rest-spread'), | ||
{ | ||
useBuiltIns: true, | ||
}, | ||
], | ||
// Transforms JSX | ||
[ | ||
require.resolve('babel-plugin-transform-react-jsx'), | ||
{ | ||
useBuiltIns: true, | ||
}, | ||
], | ||
// Polyfills the runtime needed for async/await and generators | ||
[ | ||
require.resolve('babel-plugin-transform-runtime'), | ||
{ | ||
helpers: false, | ||
polyfill: false, | ||
regenerator: true, | ||
}, | ||
], | ||
]; | ||
|
||
// This is similar to how `env` works in Babel: | ||
// https://babeljs.io/docs/usage/babelrc/#env-option | ||
// We are not using `env` because it’s ignored in versions > [email protected]: | ||
// https://github.com/babel/babel/issues/4539 | ||
// https://github.com/facebookincubator/create-react-app/issues/720 | ||
// It’s also nice that we can enforce `NODE_ENV` being specified. | ||
var env = process.env.BABEL_ENV || process.env.NODE_ENV; | ||
if (env !== 'development' && env !== 'test' && env !== 'production') { | ||
throw new Error( | ||
'Using `babel-preset-react-app` requires that you specify `NODE_ENV` or ' + | ||
'`BABEL_ENV` environment variables. Valid values are "development", ' + | ||
'"test", and "production". Instead, received: ' + | ||
JSON.stringify(env) + | ||
'.' | ||
); | ||
} | ||
module.exports = function(api, opts) { | ||
if (!opts) { | ||
opts = {}; | ||
} | ||
|
||
if (env === 'development' || env === 'test') { | ||
// The following two plugins are currently necessary to make React warnings | ||
// include more valuable information. They are included here because they are | ||
// currently not enabled in babel-preset-react. See the below threads for more info: | ||
// https://github.com/babel/babel/issues/4702 | ||
// https://github.com/babel/babel/pull/3540#issuecomment-228673661 | ||
// https://github.com/facebookincubator/create-react-app/issues/989 | ||
plugins.push.apply(plugins, [ | ||
// Adds component stack to warning messages | ||
require.resolve('babel-plugin-transform-react-jsx-source'), | ||
// Adds __self attribute to JSX which React will use for some warnings | ||
require.resolve('babel-plugin-transform-react-jsx-self'), | ||
]); | ||
} | ||
// This is similar to how `env` works in Babel: | ||
// https://babeljs.io/docs/usage/babelrc/#env-option | ||
// We are not using `env` because it’s ignored in versions > [email protected]: | ||
// https://github.com/babel/babel/issues/4539 | ||
// https://github.com/facebookincubator/create-react-app/issues/720 | ||
// It’s also nice that we can enforce `NODE_ENV` being specified. | ||
var env = process.env.BABEL_ENV || process.env.NODE_ENV; | ||
var isEnvDevelopment = env === 'development'; | ||
var isEnvProduction = env === 'production'; | ||
var isEnvTest = env === 'test'; | ||
if (!isEnvDevelopment && !isEnvProduction && !isEnvTest) { | ||
throw new Error( | ||
'Using `babel-preset-react-app` requires that you specify `NODE_ENV` or ' + | ||
'`BABEL_ENV` environment variables. Valid values are "development", ' + | ||
'"test", and "production". Instead, received: ' + | ||
JSON.stringify(env) + | ||
'.' | ||
); | ||
} | ||
|
||
if (env === 'test') { | ||
module.exports = { | ||
return { | ||
presets: [ | ||
// ES features necessary for user's Node version | ||
[ | ||
require('babel-preset-env').default, | ||
isEnvTest && [ | ||
// ES features necessary for user's Node version | ||
require('@babel/preset-env').default, | ||
{ | ||
targets: { | ||
node: 'current', | ||
node: '6.12', | ||
}, | ||
}, | ||
], | ||
// JSX, Flow | ||
require.resolve('babel-preset-react'), | ||
], | ||
plugins: plugins.concat([ | ||
// Compiles import() to a deferred require() | ||
require.resolve('babel-plugin-dynamic-import-node'), | ||
]), | ||
}; | ||
} else { | ||
module.exports = { | ||
presets: [ | ||
// Latest stable ECMAScript features | ||
[ | ||
require.resolve('babel-preset-env'), | ||
(isEnvProduction || isEnvDevelopment) && [ | ||
// Latest stable ECMAScript features | ||
require('@babel/preset-env').default, | ||
{ | ||
targets: { | ||
// React parses on ie 9, so we should too | ||
ie: 9, | ||
// We currently minify with uglify | ||
// Remove after https://github.com/mishoo/UglifyJS2/issues/448 | ||
uglify: true, | ||
}, | ||
// We currently minify with uglify | ||
// Remove after https://github.com/mishoo/UglifyJS2/issues/448 | ||
forceAllTransforms: true, | ||
// Disable polyfill transforms | ||
useBuiltIns: false, | ||
// Do not transform modules to CJS | ||
modules: false, | ||
}, | ||
], | ||
// JSX, Flow | ||
require.resolve('babel-preset-react'), | ||
], | ||
plugins: plugins.concat([ | ||
// function* () { yield 42; yield 43; } | ||
[ | ||
require.resolve('babel-plugin-transform-regenerator'), | ||
require('@babel/preset-react').default, | ||
{ | ||
// Adds component stack to warning messages | ||
// Adds __self attribute to JSX which React will use for some warnings | ||
development: isEnvDevelopment || isEnvTest, | ||
}, | ||
], | ||
[require('@babel/preset-flow').default], | ||
].filter(Boolean), | ||
plugins: [ | ||
// Experimental macros support. Will be documented after it's had some time | ||
// in the wild. | ||
require('babel-plugin-macros'), | ||
// Necessary to include regardless of the environment because | ||
// in practice some other transforms (such as object-rest-spread) | ||
// don't work without it: https://github.com/babel/babel/issues/7215 | ||
require('@babel/plugin-transform-destructuring').default, | ||
// class { handleClick = () => { } } | ||
require('@babel/plugin-proposal-class-properties').default, | ||
// The following two plugins use Object.assign directly, instead of Babel's | ||
// extends helper. Note that this assumes `Object.assign` is available. | ||
// { ...todo, completed: true } | ||
[ | ||
require('@babel/plugin-proposal-object-rest-spread').default, | ||
{ | ||
useBuiltIns: true, | ||
}, | ||
], | ||
// Transforms JSX | ||
[ | ||
require('@babel/plugin-transform-react-jsx').default, | ||
{ | ||
useBuiltIns: true, | ||
}, | ||
], | ||
// Polyfills the runtime needed for async/await and generators | ||
[ | ||
require('@babel/plugin-transform-runtime').default, | ||
{ | ||
helpers: false, | ||
polyfill: false, | ||
regenerator: true, | ||
}, | ||
], | ||
// function* () { yield 42; yield 43; } | ||
!isEnvTest && [ | ||
require('@babel/plugin-transform-regenerator').default, | ||
{ | ||
// Async functions are converted to generators by babel-preset-env | ||
async: false, | ||
}, | ||
], | ||
// Adds syntax support for import() | ||
require.resolve('babel-plugin-syntax-dynamic-import'), | ||
]), | ||
require('@babel/plugin-syntax-dynamic-import').default, | ||
isEnvTest && | ||
// Transform dynamic import to require | ||
require('babel-plugin-transform-dynamic-import').default, | ||
].filter(Boolean), | ||
}; | ||
|
||
if (env === 'production') { | ||
// Optimization: hoist JSX that never changes out of render() | ||
// Disabled because of issues: https://github.com/facebookincubator/create-react-app/issues/553 | ||
// TODO: Enable again when these issues are resolved. | ||
// plugins.push.apply(plugins, [ | ||
// require.resolve('babel-plugin-transform-react-constant-elements') | ||
// ]); | ||
} | ||
} | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.