-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.js
More file actions
97 lines (85 loc) · 2.34 KB
/
build.js
File metadata and controls
97 lines (85 loc) · 2.34 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
const fs = require('fs');
const csso = require('csso');
const path = require('path');
const packages = [
{
name: "modulate",
files: [
'src/modulate-base.css',
'src/modulate-fluid-sizing-basic.css',
'src/modulate-fluid-sizing-classic.css',
'src/modulate-fluid-sizing-modern.css',
'src/modulate-module-grid.css',
'src/modulate-header.css'
]
},
{
name: "modulate-base",
files: [
'src/modulate-base.css',
]
},
{
name: "modulate-fluid-sizing",
files: [
'src/modulate-fluid-sizing-basic.css',
'src/modulate-fluid-sizing-classic.css',
'src/modulate-fluid-sizing-modern.css'
]
},
{
name: "modulate-fluid-sizing-classic",
files: [
'src/modulate-fluid-sizing-basic.css',
'src/modulate-fluid-sizing-classic.css',
]
},
{
name: "modulate-fluid-sizing-modern",
files: [
'src/modulate-fluid-sizing-basic.css',
'src/modulate-fluid-sizing-modern.css'
]
},
{
name: "modulate-grid",
files: [
'src/modulate-module-grid.css'
]
},
{
name: "modulate-header",
files: [
'src/modulate-header.css'
]
}
]
// Ensure the dist/css directory exists
const distDir = 'dist/css';
// Delete all files under dist/css
if (fs.existsSync(distDir)) {
fs.rmSync(distDir, { recursive: true, force: true });
console.log('Deleted all files under dist/css');
}
// Recreate the dist/css directory
fs.mkdirSync(distDir, { recursive: true });
console.log('Created dist/css 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/css/${name}.css`, mergedInput, 'utf8');
console.log(`Written unminified merged file: dist/css/modulate.css`);
// Minify the merged content
const mergedOutput = csso.minify(mergedInput).css;
// Write the minified merged file
fs.writeFileSync(`dist/css/${name}.min.css`, mergedOutput, 'utf8');
console.log(`Written minified merged file: dist/css/modulate.min.css`);
}
packages.forEach(package => {
mergeAndMinifyFiles(package);
});
console.log('CSS files have been processed successfully.');