@react-native/babel-preset 0.73.6 → 0.73.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,10 +8,10 @@
8
8
  * @oncall react_native
9
9
  */
10
10
 
11
- 'use strict';
11
+ "use strict";
12
12
 
13
13
  module.exports = function () {
14
14
  return {
15
- plugins: [require('react-refresh/babel')],
15
+ plugins: [require("react-refresh/babel")],
16
16
  };
17
17
  };
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @oncall react_native
9
+ */
10
+
11
+ // This is the set of modules that React Native publicly exports and that we
12
+ // want to require lazily. Keep this list in sync with
13
+ // react-native/index.js (though having extra entries here is fairly harmless).
14
+
15
+ "use strict";
16
+
17
+ module.exports = new Set([
18
+ "AccessibilityInfo",
19
+ "ActivityIndicator",
20
+ "Button",
21
+ "DatePickerIOS",
22
+ "DrawerLayoutAndroid",
23
+ "FlatList",
24
+ "Image",
25
+ "ImageBackground",
26
+ "InputAccessoryView",
27
+ "KeyboardAvoidingView",
28
+ "Modal",
29
+ "Pressable",
30
+ "ProgressBarAndroid",
31
+ "ProgressViewIOS",
32
+ "SafeAreaView",
33
+ "ScrollView",
34
+ "SectionList",
35
+ "Slider",
36
+ "Switch",
37
+ "RefreshControl",
38
+ "StatusBar",
39
+ "Text",
40
+ "TextInput",
41
+ "Touchable",
42
+ "TouchableHighlight",
43
+ "TouchableNativeFeedback",
44
+ "TouchableOpacity",
45
+ "TouchableWithoutFeedback",
46
+ "View",
47
+ "VirtualizedList",
48
+ "VirtualizedSectionList",
49
+ // APIs
50
+ "ActionSheetIOS",
51
+ "Alert",
52
+ "Animated",
53
+ "Appearance",
54
+ "AppRegistry",
55
+ "AppState",
56
+ "AsyncStorage",
57
+ "BackHandler",
58
+ "Clipboard",
59
+ "DeviceInfo",
60
+ "Dimensions",
61
+ "Easing",
62
+ "ReactNative",
63
+ "I18nManager",
64
+ "InteractionManager",
65
+ "Keyboard",
66
+ "LayoutAnimation",
67
+ "Linking",
68
+ "LogBox",
69
+ "NativeEventEmitter",
70
+ "PanResponder",
71
+ "PermissionsAndroid",
72
+ "PixelRatio",
73
+ "PushNotificationIOS",
74
+ "Settings",
75
+ "Share",
76
+ "StyleSheet",
77
+ "Systrace",
78
+ "ToastAndroid",
79
+ "TVEventHandler",
80
+ "UIManager",
81
+ "ReactNative",
82
+ "UTFSequence",
83
+ "Vibration",
84
+ // Plugins
85
+ "RCTDeviceEventEmitter",
86
+ "RCTNativeAppEventEmitter",
87
+ "NativeModules",
88
+ "Platform",
89
+ "processColor",
90
+ "requireNativeComponent",
91
+ ]);
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @oncall react_native
9
+ */
10
+
11
+ "use strict";
12
+
13
+ const passthroughSyntaxPlugins = require("../passthrough-syntax-plugins");
14
+ const lazyImports = require("./lazy-imports");
15
+ function isTypeScriptSource(fileName) {
16
+ return !!fileName && fileName.endsWith(".ts");
17
+ }
18
+ function isTSXSource(fileName) {
19
+ return !!fileName && fileName.endsWith(".tsx");
20
+ }
21
+ const defaultPlugins = [
22
+ [require("@babel/plugin-syntax-flow")],
23
+ [require("babel-plugin-transform-flow-enums")],
24
+ [require("@babel/plugin-transform-block-scoping")],
25
+ [
26
+ require("@babel/plugin-proposal-class-properties"),
27
+ // use `this.foo = bar` instead of `this.defineProperty('foo', ...)`
28
+ {
29
+ loose: true,
30
+ },
31
+ ],
32
+ [require("@babel/plugin-syntax-dynamic-import")],
33
+ [require("@babel/plugin-syntax-export-default-from")],
34
+ ...passthroughSyntaxPlugins,
35
+ [require("@babel/plugin-transform-unicode-regex")],
36
+ ];
37
+ const getPreset = (src, options) => {
38
+ const transformProfile =
39
+ (options && options.unstable_transformProfile) || "default";
40
+ const isHermesStable = transformProfile === "hermes-stable";
41
+ const isHermesCanary = transformProfile === "hermes-canary";
42
+ const isHermes = isHermesStable || isHermesCanary;
43
+ const isNull = src == null;
44
+ const hasClass = isNull || src.indexOf("class") !== -1;
45
+ const extraPlugins = [];
46
+ if (!options.useTransformReactJSXExperimental) {
47
+ extraPlugins.push([
48
+ require("@babel/plugin-transform-react-jsx"),
49
+ {
50
+ runtime: "automatic",
51
+ },
52
+ ]);
53
+ }
54
+ if (!options || !options.disableImportExportTransform) {
55
+ extraPlugins.push(
56
+ [require("@babel/plugin-proposal-export-default-from")],
57
+ [
58
+ require("@babel/plugin-transform-modules-commonjs"),
59
+ {
60
+ strict: false,
61
+ strictMode: false,
62
+ // prevent "use strict" injections
63
+ lazy:
64
+ options && options.lazyImportExportTransform != null
65
+ ? options.lazyImportExportTransform
66
+ : (importSpecifier) => lazyImports.has(importSpecifier),
67
+ allowTopLevelThis: true, // dont rewrite global `this` -> `undefined`
68
+ },
69
+ ]
70
+ );
71
+ }
72
+
73
+ if (hasClass) {
74
+ extraPlugins.push([require("@babel/plugin-transform-classes")]);
75
+ }
76
+
77
+ // TODO(gaearon): put this back into '=>' indexOf bailout
78
+ // and patch react-refresh to not depend on this transform.
79
+ extraPlugins.push([require("@babel/plugin-transform-arrow-functions")]);
80
+ if (!isHermes) {
81
+ extraPlugins.push([require("@babel/plugin-transform-computed-properties")]);
82
+ extraPlugins.push([require("@babel/plugin-transform-parameters")]);
83
+ extraPlugins.push([
84
+ require("@babel/plugin-transform-shorthand-properties"),
85
+ ]);
86
+ extraPlugins.push([
87
+ require("@babel/plugin-proposal-optional-catch-binding"),
88
+ ]);
89
+ extraPlugins.push([require("@babel/plugin-transform-function-name")]);
90
+ extraPlugins.push([require("@babel/plugin-transform-literals")]);
91
+ extraPlugins.push([require("@babel/plugin-proposal-numeric-separator")]);
92
+ extraPlugins.push([require("@babel/plugin-transform-sticky-regex")]);
93
+ } else {
94
+ extraPlugins.push([
95
+ require("@babel/plugin-transform-named-capturing-groups-regex"),
96
+ ]);
97
+ }
98
+ if (!isHermesCanary) {
99
+ extraPlugins.push([
100
+ require("@babel/plugin-transform-destructuring"),
101
+ {
102
+ useBuiltIns: true,
103
+ },
104
+ ]);
105
+ }
106
+ if (!isHermes && (isNull || hasClass || src.indexOf("...") !== -1)) {
107
+ extraPlugins.push(
108
+ [require("@babel/plugin-transform-spread")],
109
+ [
110
+ require("@babel/plugin-proposal-object-rest-spread"),
111
+ // Assume no dependence on getters or evaluation order. See https://github.com/babel/babel/pull/11520
112
+ {
113
+ loose: true,
114
+ useBuiltIns: true,
115
+ },
116
+ ]
117
+ );
118
+ }
119
+ if (isNull || src.indexOf("async") !== -1) {
120
+ extraPlugins.push([
121
+ require("@babel/plugin-proposal-async-generator-functions"),
122
+ ]);
123
+ extraPlugins.push([require("@babel/plugin-transform-async-to-generator")]);
124
+ }
125
+ if (
126
+ isNull ||
127
+ src.indexOf("React.createClass") !== -1 ||
128
+ src.indexOf("createReactClass") !== -1
129
+ ) {
130
+ extraPlugins.push([require("@babel/plugin-transform-react-display-name")]);
131
+ }
132
+ if (!isHermes && (isNull || src.indexOf("?.") !== -1)) {
133
+ extraPlugins.push([
134
+ require("@babel/plugin-proposal-optional-chaining"),
135
+ {
136
+ loose: true,
137
+ },
138
+ ]);
139
+ }
140
+ if (!isHermes && (isNull || src.indexOf("??") !== -1)) {
141
+ extraPlugins.push([
142
+ require("@babel/plugin-proposal-nullish-coalescing-operator"),
143
+ {
144
+ loose: true,
145
+ },
146
+ ]);
147
+ }
148
+ if (options && options.dev && !options.useTransformReactJSXExperimental) {
149
+ extraPlugins.push([require("@babel/plugin-transform-react-jsx-source")]);
150
+ extraPlugins.push([require("@babel/plugin-transform-react-jsx-self")]);
151
+ }
152
+ if (!options || options.enableBabelRuntime !== false) {
153
+ // Allows configuring a specific runtime version to optimize output
154
+ const isVersion = typeof options?.enableBabelRuntime === "string";
155
+ extraPlugins.push([
156
+ require("@babel/plugin-transform-runtime"),
157
+ {
158
+ helpers: true,
159
+ regenerator: !isHermes,
160
+ ...(isVersion && {
161
+ version: options.enableBabelRuntime,
162
+ }),
163
+ },
164
+ ]);
165
+ }
166
+ return {
167
+ comments: false,
168
+ compact: true,
169
+ overrides: [
170
+ // the flow strip types plugin must go BEFORE class properties!
171
+ // there'll be a test case that fails if you don't.
172
+ {
173
+ plugins: [require("@babel/plugin-transform-flow-strip-types")],
174
+ },
175
+ {
176
+ plugins: defaultPlugins,
177
+ },
178
+ {
179
+ test: isTypeScriptSource,
180
+ plugins: [
181
+ [
182
+ require("@babel/plugin-transform-typescript"),
183
+ {
184
+ isTSX: false,
185
+ allowNamespaces: true,
186
+ },
187
+ ],
188
+ ],
189
+ },
190
+ {
191
+ test: isTSXSource,
192
+ plugins: [
193
+ [
194
+ require("@babel/plugin-transform-typescript"),
195
+ {
196
+ isTSX: true,
197
+ allowNamespaces: true,
198
+ },
199
+ ],
200
+ ],
201
+ },
202
+ {
203
+ plugins: extraPlugins,
204
+ },
205
+ ],
206
+ };
207
+ };
208
+ module.exports = (options) => {
209
+ if (options.withDevTools == null) {
210
+ const env = process.env.BABEL_ENV || process.env.NODE_ENV;
211
+ if (!env || env === "development") {
212
+ return getPreset(null, {
213
+ ...options,
214
+ dev: true,
215
+ });
216
+ }
217
+ }
218
+ return getPreset(null, options);
219
+ };
220
+ module.exports.getPreset = getPreset;
@@ -8,13 +8,11 @@
8
8
  * @oncall react_native
9
9
  */
10
10
 
11
- 'use strict';
12
-
13
- const main = require('./configs/main');
11
+ "use strict";
14
12
 
13
+ const main = require("./configs/main");
15
14
  module.exports = function (babel, options) {
16
15
  return main(options);
17
16
  };
18
-
19
17
  module.exports.getPreset = main.getPreset;
20
- module.exports.passthroughSyntaxPlugins = require('./passthrough-syntax-plugins');
18
+ module.exports.passthroughSyntaxPlugins = require("./passthrough-syntax-plugins");
@@ -8,7 +8,7 @@
8
8
  * @oncall react_native
9
9
  */
10
10
 
11
- 'use strict';
11
+ "use strict";
12
12
 
13
13
  // This list of syntax plugins is used for two purposes:
14
14
  // 1. Enabling experimental syntax features in the INPUT to the Metro Babel
@@ -16,8 +16,7 @@
16
16
  // 2. Enabling these same features in parser passes that consume the OUTPUT of
17
17
  // the Metro Babel transformer.
18
18
  const passthroughSyntaxPlugins = [
19
- [require('@babel/plugin-syntax-nullish-coalescing-operator')],
20
- [require('@babel/plugin-syntax-optional-chaining')],
19
+ [require("@babel/plugin-syntax-nullish-coalescing-operator")],
20
+ [require("@babel/plugin-syntax-optional-chaining")],
21
21
  ];
22
-
23
22
  module.exports = passthroughSyntaxPlugins;
package/package.json CHANGED
@@ -1,8 +1,14 @@
1
1
  {
2
2
  "name": "@react-native/babel-preset",
3
- "version": "0.73.6",
3
+ "version": "0.73.8",
4
4
  "description": "Babel preset for React Native applications",
5
- "main": "dist/index.js",
5
+ "exports": {
6
+ ".": "./dist/index.js",
7
+ "./package.json": "./package.json"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
6
12
  "repository": {
7
13
  "type": "git",
8
14
  "url": "git@github.com:facebook/react-native.git"
package/BUCK DELETED
@@ -1,23 +0,0 @@
1
- load("@fbsource//tools/build_defs/third_party:yarn_defs.bzl", "yarn_workspace")
2
-
3
- oncall("react_native")
4
-
5
- yarn_workspace(
6
- name = "yarn-workspace",
7
- srcs = glob(
8
- ["src/**/*.js"],
9
- exclude = [
10
- "**/__fixtures__/**",
11
- "**/__flowtests__/**",
12
- "**/__mocks__/**",
13
- "**/__server_snapshot_tests__/**",
14
- "**/__tests__/**",
15
- "**/.*",
16
- "**/.*/**",
17
- "**/.*/.*",
18
- "**/*.xcodeproj/**",
19
- "**/*.xcworkspace/**",
20
- ],
21
- ),
22
- visibility = ["PUBLIC"],
23
- )
@@ -1,93 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @format
8
- * @oncall react_native
9
- */
10
-
11
- // This is the set of modules that React Native publicly exports and that we
12
- // want to require lazily. Keep this list in sync with
13
- // react-native/index.js (though having extra entries here is fairly harmless).
14
-
15
- 'use strict';
16
-
17
- module.exports = new Set([
18
- 'AccessibilityInfo',
19
- 'ActivityIndicator',
20
- 'Button',
21
- 'DatePickerIOS',
22
- 'DrawerLayoutAndroid',
23
- 'FlatList',
24
- 'Image',
25
- 'ImageBackground',
26
- 'InputAccessoryView',
27
- 'KeyboardAvoidingView',
28
- 'Modal',
29
- 'Pressable',
30
- 'ProgressBarAndroid',
31
- 'ProgressViewIOS',
32
- 'SafeAreaView',
33
- 'ScrollView',
34
- 'SectionList',
35
- 'Slider',
36
- 'Switch',
37
- 'RefreshControl',
38
- 'StatusBar',
39
- 'Text',
40
- 'TextInput',
41
- 'Touchable',
42
- 'TouchableHighlight',
43
- 'TouchableNativeFeedback',
44
- 'TouchableOpacity',
45
- 'TouchableWithoutFeedback',
46
- 'View',
47
- 'VirtualizedList',
48
- 'VirtualizedSectionList',
49
-
50
- // APIs
51
- 'ActionSheetIOS',
52
- 'Alert',
53
- 'Animated',
54
- 'Appearance',
55
- 'AppRegistry',
56
- 'AppState',
57
- 'AsyncStorage',
58
- 'BackHandler',
59
- 'Clipboard',
60
- 'DeviceInfo',
61
- 'Dimensions',
62
- 'Easing',
63
- 'ReactNative',
64
- 'I18nManager',
65
- 'InteractionManager',
66
- 'Keyboard',
67
- 'LayoutAnimation',
68
- 'Linking',
69
- 'LogBox',
70
- 'NativeEventEmitter',
71
- 'PanResponder',
72
- 'PermissionsAndroid',
73
- 'PixelRatio',
74
- 'PushNotificationIOS',
75
- 'Settings',
76
- 'Share',
77
- 'StyleSheet',
78
- 'Systrace',
79
- 'ToastAndroid',
80
- 'TVEventHandler',
81
- 'UIManager',
82
- 'ReactNative',
83
- 'UTFSequence',
84
- 'Vibration',
85
-
86
- // Plugins
87
- 'RCTDeviceEventEmitter',
88
- 'RCTNativeAppEventEmitter',
89
- 'NativeModules',
90
- 'Platform',
91
- 'processColor',
92
- 'requireNativeComponent',
93
- ]);
@@ -1,215 +0,0 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @format
8
- * @oncall react_native
9
- */
10
-
11
- 'use strict';
12
-
13
- const passthroughSyntaxPlugins = require('../passthrough-syntax-plugins');
14
- const lazyImports = require('./lazy-imports');
15
-
16
- function isTypeScriptSource(fileName) {
17
- return !!fileName && fileName.endsWith('.ts');
18
- }
19
-
20
- function isTSXSource(fileName) {
21
- return !!fileName && fileName.endsWith('.tsx');
22
- }
23
-
24
- const defaultPlugins = [
25
- [require('@babel/plugin-syntax-flow')],
26
- [require('babel-plugin-transform-flow-enums')],
27
- [require('@babel/plugin-transform-block-scoping')],
28
- [
29
- require('@babel/plugin-proposal-class-properties'),
30
- // use `this.foo = bar` instead of `this.defineProperty('foo', ...)`
31
- {loose: true},
32
- ],
33
- [require('@babel/plugin-syntax-dynamic-import')],
34
- [require('@babel/plugin-syntax-export-default-from')],
35
- ...passthroughSyntaxPlugins,
36
- [require('@babel/plugin-transform-unicode-regex')],
37
- ];
38
-
39
- const getPreset = (src, options) => {
40
- const transformProfile =
41
- (options && options.unstable_transformProfile) || 'default';
42
- const isHermesStable = transformProfile === 'hermes-stable';
43
- const isHermesCanary = transformProfile === 'hermes-canary';
44
- const isHermes = isHermesStable || isHermesCanary;
45
-
46
- const isNull = src == null;
47
- const hasClass = isNull || src.indexOf('class') !== -1;
48
-
49
- const extraPlugins = [];
50
- if (!options.useTransformReactJSXExperimental) {
51
- extraPlugins.push([
52
- require('@babel/plugin-transform-react-jsx'),
53
- {runtime: 'automatic'},
54
- ]);
55
- }
56
-
57
- if (!options || !options.disableImportExportTransform) {
58
- extraPlugins.push(
59
- [require('@babel/plugin-proposal-export-default-from')],
60
- [
61
- require('@babel/plugin-transform-modules-commonjs'),
62
- {
63
- strict: false,
64
- strictMode: false, // prevent "use strict" injections
65
- lazy:
66
- options && options.lazyImportExportTransform != null
67
- ? options.lazyImportExportTransform
68
- : importSpecifier => lazyImports.has(importSpecifier),
69
- allowTopLevelThis: true, // dont rewrite global `this` -> `undefined`
70
- },
71
- ],
72
- );
73
- }
74
-
75
- if (hasClass) {
76
- extraPlugins.push([require('@babel/plugin-transform-classes')]);
77
- }
78
-
79
- // TODO(gaearon): put this back into '=>' indexOf bailout
80
- // and patch react-refresh to not depend on this transform.
81
- extraPlugins.push([require('@babel/plugin-transform-arrow-functions')]);
82
-
83
- if (!isHermes) {
84
- extraPlugins.push([require('@babel/plugin-transform-computed-properties')]);
85
- extraPlugins.push([require('@babel/plugin-transform-parameters')]);
86
- extraPlugins.push([
87
- require('@babel/plugin-transform-shorthand-properties'),
88
- ]);
89
- extraPlugins.push([
90
- require('@babel/plugin-proposal-optional-catch-binding'),
91
- ]);
92
- extraPlugins.push([require('@babel/plugin-transform-function-name')]);
93
- extraPlugins.push([require('@babel/plugin-transform-literals')]);
94
- extraPlugins.push([require('@babel/plugin-proposal-numeric-separator')]);
95
- extraPlugins.push([require('@babel/plugin-transform-sticky-regex')]);
96
- } else {
97
- extraPlugins.push([
98
- require('@babel/plugin-transform-named-capturing-groups-regex'),
99
- ]);
100
- }
101
- if (!isHermesCanary) {
102
- extraPlugins.push([
103
- require('@babel/plugin-transform-destructuring'),
104
- {useBuiltIns: true},
105
- ]);
106
- }
107
- if (!isHermes && (isNull || hasClass || src.indexOf('...') !== -1)) {
108
- extraPlugins.push(
109
- [require('@babel/plugin-transform-spread')],
110
- [
111
- require('@babel/plugin-proposal-object-rest-spread'),
112
- // Assume no dependence on getters or evaluation order. See https://github.com/babel/babel/pull/11520
113
- {loose: true, useBuiltIns: true},
114
- ],
115
- );
116
- }
117
- if (isNull || src.indexOf('async') !== -1) {
118
- extraPlugins.push([
119
- require('@babel/plugin-proposal-async-generator-functions'),
120
- ]);
121
- extraPlugins.push([require('@babel/plugin-transform-async-to-generator')]);
122
- }
123
- if (
124
- isNull ||
125
- src.indexOf('React.createClass') !== -1 ||
126
- src.indexOf('createReactClass') !== -1
127
- ) {
128
- extraPlugins.push([require('@babel/plugin-transform-react-display-name')]);
129
- }
130
- if (!isHermes && (isNull || src.indexOf('?.') !== -1)) {
131
- extraPlugins.push([
132
- require('@babel/plugin-proposal-optional-chaining'),
133
- {loose: true},
134
- ]);
135
- }
136
- if (!isHermes && (isNull || src.indexOf('??') !== -1)) {
137
- extraPlugins.push([
138
- require('@babel/plugin-proposal-nullish-coalescing-operator'),
139
- {loose: true},
140
- ]);
141
- }
142
-
143
- if (options && options.dev && !options.useTransformReactJSXExperimental) {
144
- extraPlugins.push([require('@babel/plugin-transform-react-jsx-source')]);
145
- extraPlugins.push([require('@babel/plugin-transform-react-jsx-self')]);
146
- }
147
-
148
- if (!options || options.enableBabelRuntime !== false) {
149
- // Allows configuring a specific runtime version to optimize output
150
- const isVersion = typeof options?.enableBabelRuntime === 'string';
151
-
152
- extraPlugins.push([
153
- require('@babel/plugin-transform-runtime'),
154
- {
155
- helpers: true,
156
- regenerator: !isHermes,
157
- ...(isVersion && {version: options.enableBabelRuntime}),
158
- },
159
- ]);
160
- }
161
-
162
- return {
163
- comments: false,
164
- compact: true,
165
- overrides: [
166
- // the flow strip types plugin must go BEFORE class properties!
167
- // there'll be a test case that fails if you don't.
168
- {
169
- plugins: [require('@babel/plugin-transform-flow-strip-types')],
170
- },
171
- {
172
- plugins: defaultPlugins,
173
- },
174
- {
175
- test: isTypeScriptSource,
176
- plugins: [
177
- [
178
- require('@babel/plugin-transform-typescript'),
179
- {
180
- isTSX: false,
181
- allowNamespaces: true,
182
- },
183
- ],
184
- ],
185
- },
186
- {
187
- test: isTSXSource,
188
- plugins: [
189
- [
190
- require('@babel/plugin-transform-typescript'),
191
- {
192
- isTSX: true,
193
- allowNamespaces: true,
194
- },
195
- ],
196
- ],
197
- },
198
- {
199
- plugins: extraPlugins,
200
- },
201
- ],
202
- };
203
- };
204
-
205
- module.exports = options => {
206
- if (options.withDevTools == null) {
207
- const env = process.env.BABEL_ENV || process.env.NODE_ENV;
208
- if (!env || env === 'development') {
209
- return getPreset(null, {...options, dev: true});
210
- }
211
- }
212
- return getPreset(null, options);
213
- };
214
-
215
- module.exports.getPreset = getPreset;