You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.5 KiB
52 lines
1.5 KiB
module.exports = function (api) { |
|
const validEnv = ['development', 'test', 'production'] |
|
const currentEnv = api.env() |
|
const isDevelopmentEnv = api.env('development') |
|
const isProductionEnv = api.env('production') |
|
const isTestEnv = api.env('test') |
|
|
|
if (!validEnv.includes(currentEnv)) { |
|
throw new Error( |
|
'Please specify a valid `NODE_ENV` or ' + |
|
'`BABEL_ENV` environment variables. Valid values are "development", ' + |
|
'"test", and "production". Instead, received: ' + |
|
JSON.stringify(currentEnv) + |
|
'.' |
|
) |
|
} |
|
|
|
return { |
|
presets: [ |
|
isTestEnv && [ |
|
'@babel/preset-env' |
|
], |
|
(isProductionEnv || isDevelopmentEnv) && [ |
|
'@babel/preset-env', |
|
{ |
|
forceAllTransforms: true, |
|
useBuiltIns: 'entry', |
|
corejs: '3.21.1', |
|
modules: false, |
|
exclude: ['transform-typeof-symbol'] |
|
} |
|
] |
|
].filter(Boolean), |
|
plugins: [ |
|
'babel-plugin-macros', |
|
'@babel/plugin-syntax-dynamic-import', |
|
isTestEnv && 'babel-plugin-dynamic-import-node', |
|
'@babel/plugin-proposal-class-properties', |
|
'@babel/plugin-proposal-object-rest-spread', |
|
'@babel/plugin-proposal-private-methods', |
|
'@babel/plugin-proposal-private-property-in-object', |
|
'@babel/plugin-transform-regenerator', |
|
'@babel/plugin-transform-runtime', |
|
[ |
|
'@babel/plugin-transform-spread', |
|
{ |
|
loose: true |
|
} |
|
] |
|
].filter(Boolean) |
|
} |
|
}
|
|
|