summaryrefslogtreecommitdiff
path: root/babel.config.js
blob: 6f5e9ba43d271d602e43bf0394da975c97b50e40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'use strict';

const presets = [
  [
    '@babel/preset-env',
    {
      modules: false,
      // see also zloirock/core-js https://bit.ly/2JLnrgw
      useBuiltIns: 'usage',
      corejs: 3
    }
  ],
  '@babel/preset-react',
  '@babel/preset-flow'
];

module.exports = api => {
  api.cache.using(() => process.env.NODE_ENV);
  const isDev = api.env('development');
  const plugins = [
    [
      '@babel/plugin-transform-runtime',
      {
        corejs: false,
        helpers: true,
        regenerator: true,
        useESModules: true
      }
    ],
    '@babel/plugin-syntax-dynamic-import',
    '@babel/plugin-proposal-class-properties',
    '@babel/plugin-proposal-do-expressions',
    isDev ? 'react-refresh/babel' : false
  ].filter(Boolean);
  return { presets, plugins };
};