-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.js
68 lines (56 loc) · 1.7 KB
/
build.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
const fs = require('fs');
const csso = require('csso');
const path = require('path');
const packages = [
{
name: "fluidsizingcss",
files: [
'src/fluidsizingcss-common.css',
'src/fluidsizingcss-physical.css',
'src/fluidsizingcss-logical.css'
]
},
{
name: "fluidsizingcss-physical",
files: [
'src/fluidsizingcss-common.css',
'src/fluidsizingcss-physical.css',
]
},
{
name: "fluidsizingcss-logical",
files: [
'src/fluidsizingcss-common.css',
'src/fluidsizingcss-logical.css'
]
},
]
// Ensure the dist directory exists
const distDir = 'dist';
// Delete all files under dist
if (fs.existsSync(distDir)) {
fs.rmSync(distDir, { recursive: true, force: true });
console.log('Deleted all files under dist');
}
// Recreate the dist directory
fs.mkdirSync(distDir, { recursive: true });
console.log('Created dist directory');
function mergeAndMinifyFiles(package) {
const name = package.name;
const files = package.files;
// Merge all files into one
const mergedInput = files.map(file => fs.readFileSync(file, 'utf8')).join('\n');
console.log(`Merged files: ${files.join(', ')}`);
// Write the unminified merged file
fs.writeFileSync(`dist/${name}.css`, mergedInput, 'utf8');
console.log(`Written unminified merged file: dist/modulate.css`);
// Minify the merged content
const mergedOutput = csso.minify(mergedInput).css;
// Write the minified merged file
fs.writeFileSync(`dist/${name}.min.css`, mergedOutput, 'utf8');
console.log(`Written minified merged file: dist/modulate.min.css`);
}
packages.forEach(package => {
mergeAndMinifyFiles(package);
});
console.log('CSS files have been processed successfully.');