Skip to content

Commit ebdbef6

Browse files
committed
chore: Refactor build script to process and merge CSS files
1 parent 85089aa commit ebdbef6

2 files changed

Lines changed: 49 additions & 1 deletion

File tree

build.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
const fs = require('fs');
2+
const csso = require('csso');
3+
const path = require('path');
4+
5+
// List of CSS files to be processed
6+
const files = [
7+
'src/modulate-base.css',
8+
'src/modulate-fluid-sizing.css',
9+
'src/modulate-advanced-page-grid.css',
10+
'src/modulate-header.css'
11+
];
12+
13+
// Ensure the dist/css directory exists
14+
const distDir = 'dist/css';
15+
if (!fs.existsSync(distDir)){
16+
fs.mkdirSync(distDir, { recursive: true });
17+
}
18+
19+
// Process each file
20+
files.forEach(file => {
21+
// Read the unminified content
22+
const input = fs.readFileSync(file, 'utf8');
23+
24+
// Write the unminified file to dist/css
25+
const unminifiedOutputFileName = path.join(distDir, path.basename(file));
26+
fs.writeFileSync(unminifiedOutputFileName, input, 'utf8');
27+
28+
// Minify the content
29+
const output = csso.minify(input).css;
30+
31+
// Write the minified file to dist/css
32+
const minifiedOutputFileName = unminifiedOutputFileName.replace('.css', '.min.css');
33+
fs.writeFileSync(minifiedOutputFileName, output, 'utf8');
34+
});
35+
36+
// Merge and minify all files into one
37+
const mergedInput = files.map(file => fs.readFileSync(file, 'utf8')).join('\n');
38+
39+
// Write the unminified merged file
40+
fs.writeFileSync('dist/css/modulate.css', mergedInput, 'utf8');
41+
42+
// Minify the merged content
43+
const mergedOutput = csso.minify(mergedInput).css;
44+
45+
// Write the minified merged file
46+
fs.writeFileSync('dist/css/modulate.min.css', mergedOutput, 'utf8');
47+
48+
console.log('CSS files have been processed successfully.');

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"dist/css/"
99
],
1010
"scripts": {
11-
"build": "csso src/modulate.css --output dist/css/modulate.min.css"
11+
"build": "node build.js"
1212
},
1313
"repository": {
1414
"type": "git",

0 commit comments

Comments
 (0)