-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathgulpfile.js
More file actions
102 lines (96 loc) · 2.1 KB
/
Copy pathgulpfile.js
File metadata and controls
102 lines (96 loc) · 2.1 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
const gulp = require('gulp');
const rollup = require('rollup');
const resolve = require('rollup-plugin-node-resolve');
const terser = require('rollup-plugin-terser');
const replace = require('rollup-plugin-replace');
const packages = [
'base',
'button',
'card',
'checkbox',
'fab',
'header',
'icon',
'icons',
'input',
'link',
'notification',
'radio',
'select',
'slider',
'tag',
'toggle'
];
gulp.task('build', gulp.parallel(buildSeries, buildBundle));
gulp.task('buildSeries', buildSeries);
gulp.task('buildParallel', buildParallel);
gulp.task('buildBundle', buildBundle);
function buildBundle() {
return rollup
.rollup({
input: 'packages/index.js',
plugins: [
resolve(),
terser.terser({
module: true,
mangle: {
module: true
}
})
]
})
.then(rollupFileBuild =>
rollupFileBuild.write({
file: 'dist/index.min.js',
format: 'es'
})
);
}
async function buildSeries() {
for (let package of packages) {
const rollupFileBuild = await rollup.rollup({
input: `packages/${package}/${package}.js`,
plugins: [
resolve(),
replace({ values: { hello: '' } }),
terser.terser({
module: true,
mangle: {
module: true
}
})
],
experimentalCodeSplitting: true
});
console.log(`Building package: ${package} ...`);
rollupFileBuild.write({
file: `packages/${package}/dist/${package}.min.js`,
format: 'es'
});
}
}
async function buildParallel() {
await Promise.all(
packages.map(package =>
rollup
.rollup({
input: `packages/${package}/${package}.js`,
plugins: [
resolve(),
terser.terser({
module: true,
mangle: {
module: true
}
})
]
})
.then(rollupFileBuild =>
rollupFileBuild.write({
file: `packages/${package}/dist/${package}.min.js`,
format: 'es'
})
)
)
);
}