Support Babel's envName option in React Refresh plugin (#19009)
* Fix envName bug * Replace getEnv with env
This commit is contained in:
parent
1f38dcff67
commit
b7d18c4daf
|
@ -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. ' +
|
||||
|
|
|
@ -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.',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue