34 lines
923 B
JavaScript
34 lines
923 B
JavaScript
module.exports = function (api) {
|
|
let targets = {};
|
|
const plugins = [
|
|
'babel-plugin-macros',
|
|
'styled-components',
|
|
'react-hot-loader/babel',
|
|
'@babel/transform-runtime',
|
|
'@babel/transform-react-jsx',
|
|
'@babel/proposal-class-properties',
|
|
'@babel/proposal-object-rest-spread',
|
|
'@babel/proposal-optional-chaining',
|
|
'@babel/proposal-nullish-coalescing-operator',
|
|
'@babel/syntax-dynamic-import',
|
|
];
|
|
|
|
if (api.env('test')) {
|
|
targets = { node: 'current' };
|
|
plugins.push('@babel/transform-modules-commonjs');
|
|
}
|
|
|
|
return {
|
|
presets: [
|
|
['@babel/env', {
|
|
modules: false,
|
|
corejs: 3,
|
|
useBuiltIns: 'entry',
|
|
targets,
|
|
}],
|
|
'@babel/typescript',
|
|
'@babel/react',
|
|
],
|
|
plugins: plugins,
|
|
};
|
|
};
|