1 | ;
|
2 |
|
3 | const {declare} = require('@babel/helper-plugin-utils');
|
4 |
|
5 | const plugins = require('./plugins');
|
6 |
|
7 | module.exports = declare((api, options) => {
|
8 | const modernBrowsers =
|
9 | 'Chrome >= 71, Firefox >= 64, Safari >= 12, Opera >= 58, ChromeAndroid >= 71, FirefoxAndroid >= 64, iOS >= 12, OperaMobile >= 46';
|
10 | const legacyBrowsers = '> 0.2%, last 1 version, not dead';
|
11 | const browsers = options.environment === 'modern' ? modernBrowsers : legacyBrowsers;
|
12 |
|
13 | return {
|
14 | presets: [
|
15 | [
|
16 | '@babel/preset-env',
|
17 | {
|
18 | // See:
|
19 | //
|
20 | // * https://new.babeljs.io/docs/en/next/babel-preset-env.html
|
21 | // * https://github.com/browserslist/browserslist#queries
|
22 | // * http://browserl.ist/
|
23 | // * https://support.udemy.com/hc/en-us/articles/229231047-System-Requirements
|
24 | // * https://github.com/babel/babel/blob/master/packages/babel-preset-env/src/available-plugins.js
|
25 | //
|
26 | // To get some debugging information, add `debug: true`.
|
27 | targets: {
|
28 | browsers,
|
29 | },
|
30 | modules: false,
|
31 | useBuiltIns: 'entry',
|
32 | corejs: 2,
|
33 | // Our current versions of webpack and UglifyJS don't understand the
|
34 | // latest JS syntax, so force all transforms for now.
|
35 | forceAllTransforms: true,
|
36 | },
|
37 | ],
|
38 | [
|
39 | '@babel/preset-react',
|
40 | {
|
41 | useBuiltIns: true,
|
42 | },
|
43 | ],
|
44 | ],
|
45 |
|
46 | plugins,
|
47 | };
|
48 | });
|