UNPKG

1.83 kBJavaScriptView Raw
1'use strict';
2
3const {declare} = require('@babel/helper-plugin-utils');
4
5const plugins = require('./plugins');
6
7module.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});