-
Notifications
You must be signed in to change notification settings - Fork 0
/
babel.config.js
69 lines (64 loc) · 1.74 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
const NODE_ENV = (process.env.NODE_ENV || "").trim();
const isProduct = NODE_ENV == 'production';
module.exports = function(api) {
api.cache(true);
const presets = [];
if(isProduct) {
presets.push(["minify", {
"mangle": {
"topLevel": false,
"exclude":{
__renderJsx:true
}
},
"simplify": false, //设置为true有bug:【let result="";while(true){...{break;}...}return result;】result变量被混淆,但仍然return result;导致报错
"builtIns": false,
"booleans": false,
"keepFnName": false,
}]);
}
presets.push([
"@babel/preset-env",
{
"modules": false,
"targets": {
"browsers": ["ie>=9"]
},
"useBuiltIns": false,
},
]);
const plugins = [
['@babel/plugin-proposal-object-rest-spread'],
['@babel/plugin-proposal-export-default-from'],
['@babel/plugin-transform-react-jsx', {
pragma: "__renderJsx(this)",
throwIfNamespace: false
}],
// "transform-es3-property-literals",
// "transform-es3-member-expression-literals",
// "@babel/plugin-transform-reserved-words",
["@babel/plugin-proposal-decorators", {
"legacy": true
}],
["@babel/plugin-proposal-class-properties", {
"loose": true
}],
["@babel/plugin-proposal-private-methods", {
"loose": true
}],
["@babel/plugin-proposal-private-property-in-object", {
"loose": true
}],
["@babel/plugin-proposal-nullish-coalescing-operator"],
["@babel/plugin-proposal-optional-chaining"],
["@babel/plugin-proposal-numeric-separator"],
["@babel/plugin-proposal-throw-expressions"],
["@babel/plugin-proposal-logical-assignment-operators"],
["@babel/plugin-proposal-do-expressions"]
];
return {
presets,
plugins,
shouldPrintComment: (val) => /@preserve|@license|Released under the/i.test(val)
};
}