Support Babel's envName option in React Refresh plugin (#19009)

* Fix envName bug

* Replace getEnv with env
This commit is contained in:
Kevin Weber 2020-09-01 05:50:54 -07:00 committed by GitHub
parent 1f38dcff67
commit b7d18c4daf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 3 deletions

View File

@ -8,9 +8,9 @@
'use strict';
export default function(babel, opts = {}) {
if (typeof babel.getEnv === 'function') {
if (typeof babel.env === 'function') {
// Only available in Babel 7.
const env = babel.getEnv();
const env = babel.env();
if (env !== 'development' && !opts.skipEnvCheck) {
throw new Error(
'React Refresh Babel transform should only be enabled in development environment. ' +

View File

@ -16,13 +16,15 @@ function transform(input, options = {}) {
babel.transform(input, {
babelrc: false,
configFile: false,
envName: options.envName,
plugins: [
'@babel/syntax-jsx',
'@babel/syntax-dynamic-import',
[
freshPlugin,
{
skipEnvCheck: true,
skipEnvCheck:
options.skipEnvCheck === undefined ? true : options.skipEnvCheck,
// To simplify debugging tests:
emitFullSignatures: true,
...options.freshOptions,
@ -507,4 +509,19 @@ describe('ReactFreshBabelPlugin', () => {
),
).toMatchSnapshot();
});
it("respects Babel's envName option", () => {
const envName = 'random';
expect(() =>
transform(`export default function BabelEnv () { return null };`, {
envName,
skipEnvCheck: false,
}),
).toThrowError(
'React Refresh Babel transform should only be enabled in development environment. ' +
'Instead, the environment is: "' +
envName +
'". If you want to override this check, pass {skipEnvCheck: true} as plugin options.',
);
});
});