-
Notifications
You must be signed in to change notification settings - Fork 1
/
babel.config.mjs
47 lines (44 loc) · 791 Bytes
/
babel.config.mjs
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
import {readFileSync} from 'node:fs';
const {name, version, engines} = JSON.parse(readFileSync('./package.json'));
const node = engines.node
.split(/[^\d.]+/)
.filter(s => s.length)
.map(s => [...s.split('.').map(s => +s || 0), 0, 0].slice(0, 3))
.sort((a, b) => a[2] - b[2])
.sort((a, b) => a[1] - b[1])
.sort((a, b) => a[0] - b[0])[0]
.join('.');
export default api => {
const env = api.env();
api.cache(() => env);
return {
presets: [
[
'@babel/preset-env',
{
modules: 'commonjs',
targets: {
node
}
}
]
],
plugins: [
[
'search-and-replace',
{
rules: [
{
search: '#{VERSION}',
replace: version
},
{
search: '#{NAME}',
replace: name
}
]
}
]
]
};
};