-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbabel.config.js
41 lines (38 loc) · 1.05 KB
/
babel.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* eslint-env node */
module.exports = (api) => {
const mode = process.env.NODE_ENV ?? "production";
// This caches the Babel config by environment.
api.cache.using(() => mode);
return {
presets: [
[
"@babel/preset-env",
{
targets: {
browsers: [">1%", "last 4 versions", "not ie < 9"],
},
useBuiltIns: "usage",
debug: false,
corejs: 3,
},
],
"@babel/preset-react",
[
"@babel/typescript",
{
allowDeclareFields: true,
onlyRemoveTypeImports: true,
},
],
],
plugins: [
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-export-namespace-from",
"@babel/plugin-proposal-throw-expressions",
"@babel/proposal-object-rest-spread",
// Applies the react-refresh Babel plugin on non-production modes only
mode !== "production" && mode !== "test" ? "react-refresh/babel" : null,
].filter(Boolean),
};
};