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 mobileBrowsers =
|
9 | 'last 2 ChromeAndroid version, last 1 FirefoxAndroid version, last 4 iOS versions, last 1 OperaMobile version';
|
10 | const desktopBrowsers =
|
11 | 'last 2 Edge versions, last 5 Chrome versions, last 2 Firefox versions, IE 11, last 1 Opera version, last 2 Safari versions';
|
12 | const browsers = options.device === 'mobile' ? mobileBrowsers : desktopBrowsers;
|
13 |
|
14 | return {
|
15 | presets: [
|
16 | [
|
17 | '@babel/preset-env',
|
18 | {
|
19 | // See:
|
20 | //
|
21 | // * https://new.babeljs.io/docs/en/next/babel-preset-env.html
|
22 | // * https://github.com/browserslist/browserslist#queries
|
23 | // * http://browserl.ist/
|
24 | // * https://support.udemy.com/hc/en-us/articles/229231047-System-Requirements
|
25 | // * https://github.com/babel/babel/blob/master/packages/babel-preset-env/src/available-plugins.js
|
26 | //
|
27 | // To get some debugging information, add `debug: true`.
|
28 | targets: {
|
29 | browsers,
|
30 | },
|
31 | modules: false,
|
32 | useBuiltIns: 'entry',
|
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 | });
|