@@ -2,24 +2,58 @@ const fs = require('fs');
22const csso = require ( 'csso' ) ;
33const path = require ( 'path' ) ;
44
5- // List of CSS files to be processed
6- const allFiles = [
7- 'src/modulate-base.css' ,
8- 'src/modulate-fluid-sizing-basic.css' ,
9- 'src/modulate-fluid-sizing-classic.css' ,
10- 'src/modulate-fluid-sizing-modern.css' ,
11- 'src/modulate-module-grid.css' ,
12- 'src/modulate-header.css'
13- ] ;
14-
155const packages = [
16- [
17- 'src/modulate-base.css' ,
18- 'src/modulate-fluid-sizing-basic.css' ,
19- 'src/modulate-fluid-sizing-modern.css' ,
20- 'src/modulate-module-grid.css' ,
21- 'src/modulate-header.css'
22- ]
6+ {
7+ name : "modulate" ,
8+ files : [
9+ 'src/modulate-base.css' ,
10+ 'src/modulate-fluid-sizing-basic.css' ,
11+ 'src/modulate-fluid-sizing-classic.css' ,
12+ 'src/modulate-fluid-sizing-modern.css' ,
13+ 'src/modulate-module-grid.css' ,
14+ 'src/modulate-header.css'
15+ ]
16+ } ,
17+ {
18+ name : "modulate-base" ,
19+ files : [
20+ 'src/modulate-base.css' ,
21+ ]
22+ } ,
23+ {
24+ name : "modulate-fluid-sizing" ,
25+ files : [
26+ 'src/modulate-fluid-sizing-basic.css' ,
27+ 'src/modulate-fluid-sizing-classic.css' ,
28+ 'src/modulate-fluid-sizing-modern.css'
29+ ]
30+ } ,
31+ {
32+ name : "modulate-fluid-sizing-classic" ,
33+ files : [
34+ 'src/modulate-fluid-sizing-basic.css' ,
35+ 'src/modulate-fluid-sizing-classic.css' ,
36+ ]
37+ } ,
38+ {
39+ name : "modulate-fluid-sizing-modern" ,
40+ files : [
41+ 'src/modulate-fluid-sizing-basic.css' ,
42+ 'src/modulate-fluid-sizing-modern.css'
43+ ]
44+ } ,
45+ {
46+ name : "modulate-grid" ,
47+ files : [
48+ 'src/modulate-module-grid.css'
49+ ]
50+ } ,
51+ {
52+ name : "modulate-header" ,
53+ files : [
54+ 'src/modulate-header.css'
55+ ]
56+ }
2357]
2458
2559// Ensure the dist/css directory exists
@@ -35,41 +69,25 @@ if (fs.existsSync(distDir)) {
3569fs . mkdirSync ( distDir , { recursive : true } ) ;
3670console . log ( 'Created dist/css directory' ) ;
3771
38- // Process each file
39- allFiles . forEach ( file => {
40- // Read the unminified content
41- const input = fs . readFileSync ( file , 'utf8' ) ;
42- console . log ( `Read file: ${ file } ` ) ;
43-
44- // Write the unminified file to dist/css
45- const unminifiedOutputFileName = path . join ( distDir , path . basename ( file ) ) ;
46- fs . writeFileSync ( unminifiedOutputFileName , input , 'utf8' ) ;
47- console . log ( `Written unminified file: ${ unminifiedOutputFileName } ` ) ;
48-
49- // Minify the content
50- const output = csso . minify ( input ) . css ;
72+ function mergeAndMinifyFiles ( package ) {
5173
52- // Write the minified file to dist/css
53- const minifiedOutputFileName = unminifiedOutputFileName . replace ( '.css' , '.min.css' ) ;
54- fs . writeFileSync ( minifiedOutputFileName , output , 'utf8' ) ;
55- console . log ( `Written minified file: ${ minifiedOutputFileName } ` ) ;
56- } ) ;
74+ const name = package . name ;
75+ const files = package . files ;
5776
58- function mergeAndMinifyFiles ( files ) {
5977 // Merge all files into one
6078 const mergedInput = files . map ( file => fs . readFileSync ( file , 'utf8' ) ) . join ( '\n' ) ;
6179 console . log ( `Merged files: ${ files . join ( ', ' ) } ` ) ;
6280
6381 // Write the unminified merged file
64- fs . writeFileSync ( ' dist/css/modulate .css' , mergedInput , 'utf8' ) ;
65- console . log ( ' Written unminified merged file: dist/css/modulate.css' ) ;
82+ fs . writeFileSync ( ` dist/css/${ name } .css` , mergedInput , 'utf8' ) ;
83+ console . log ( ` Written unminified merged file: dist/css/modulate.css` ) ;
6684
6785 // Minify the merged content
6886 const mergedOutput = csso . minify ( mergedInput ) . css ;
6987
7088 // Write the minified merged file
71- fs . writeFileSync ( ' dist/css/modulate .min.css' , mergedOutput , 'utf8' ) ;
72- console . log ( ' Written minified merged file: dist/css/modulate.min.css' ) ;
89+ fs . writeFileSync ( ` dist/css/${ name } .min.css` , mergedOutput , 'utf8' ) ;
90+ console . log ( ` Written minified merged file: dist/css/modulate.min.css` ) ;
7391}
7492
7593packages . forEach ( package => {
0 commit comments