UNPKG

1.78 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 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});