@@ -42,15 +42,72 @@ async function clean () {
4242exports . clean = clean ;
4343
4444function copyAssets ( ) {
45- return gulp . src ( '.tmp/assets/**' )
46- . pipe ( gulp . dest ( '_site/assets' ) ) ;
45+ console . log ( '🔍 copyAssets: Starting asset copy process' ) ;
46+
47+ // Check source directory
48+ if ( ! fs . existsSync ( '.tmp/assets' ) ) {
49+ console . error ( '❌ Source directory .tmp/assets does not exist' ) ;
50+ return Promise . resolve ( ) ;
51+ }
52+
53+ // List source files
54+ try {
55+ const sourceFiles = fs . readdirSync ( '.tmp/assets' , { recursive : true } ) ;
56+ console . log ( `📁 Source files found: ${ sourceFiles . length } ` ) ;
57+ sourceFiles . forEach ( file => console . log ( ` - ${ file } ` ) ) ;
58+ } catch ( err ) {
59+ console . error ( '❌ Error reading source directory:' , err . message ) ;
60+ }
61+
62+ // Ensure destination directory exists
63+ if ( ! fs . existsSync ( '_site' ) ) {
64+ console . log ( '📁 Creating _site directory' ) ;
65+ fs . mkdirSync ( '_site' , { recursive : true } ) ;
66+ }
67+ if ( ! fs . existsSync ( '_site/assets' ) ) {
68+ console . log ( '📁 Creating _site/assets directory' ) ;
69+ fs . mkdirSync ( '_site/assets' , { recursive : true } ) ;
70+ }
71+
72+ let fileCount = 0 ;
73+
74+ return gulp . src ( '.tmp/assets/**' , { allowEmpty : true } )
75+ . pipe ( plumber ( {
76+ errorHandler : function ( err ) {
77+ console . error ( '❌ Error in copyAssets pipe:' , err . message ) ;
78+ console . error ( 'Stack:' , err . stack ) ;
79+ this . emit ( 'end' ) ;
80+ }
81+ } ) )
82+ . on ( 'data' , function ( file ) {
83+ fileCount ++ ;
84+ console . log ( `📄 Copying file ${ fileCount } : ${ file . relative } ` ) ;
85+ } )
86+ . pipe ( gulp . dest ( '_site/assets' ) )
87+ . on ( 'end' , function ( ) {
88+ console . log ( `✅ copyAssets: Completed copying ${ fileCount } files` ) ;
89+
90+ // Verify destination files
91+ try {
92+ if ( fs . existsSync ( '_site/assets' ) ) {
93+ const destFiles = fs . readdirSync ( '_site/assets' , { recursive : true } ) ;
94+ console . log ( `📁 Destination files created: ${ destFiles . length } ` ) ;
95+ destFiles . forEach ( file => console . log ( ` ✓ ${ file } ` ) ) ;
96+ } else {
97+ console . error ( '❌ Destination directory _site/assets was not created' ) ;
98+ }
99+ } catch ( err ) {
100+ console . error ( '❌ Error verifying destination:' , err . message ) ;
101+ }
102+ } ) ;
47103}
48104exports . copyAssets = copyAssets ;
49105
50106async function styles ( ) {
107+ console . log ( '🎨 styles: Starting CSS compilation' ) ;
51108 const autoprefixer = ( await import ( 'gulp-autoprefixer' ) ) . default ;
52109
53- const sassInput = 'app/assets/styles/* .scss' ;
110+ const sassInput = 'app/assets/styles/main .scss' ; // Only compile main entry point
54111 const sassOptions = {
55112 includePaths : [
56113 'app/assets/styles' ,
@@ -81,7 +138,11 @@ async function styles () {
81138 console . log ( 'BrowserSync stream error (non-fatal):' , error . message ) ;
82139 }
83140
84- return stream . pipe ( gulp . dest ( '.tmp/assets/styles' ) ) ;
141+ return stream
142+ . pipe ( gulp . dest ( '.tmp/assets/styles' ) )
143+ . on ( 'end' , function ( ) {
144+ console . log ( '✅ styles: CSS compilation completed and written to .tmp/assets/styles' ) ;
145+ } ) ;
85146}
86147exports . styles = styles ;
87148
@@ -249,15 +310,20 @@ function watching () {
249310 delay : 500
250311 } , gulp . series (
251312 jekyll ,
252- gulp . parallel ( javascripts , styles , icons ) ,
313+ buildAssets ,
253314 copyAssets ,
254315 browserReload ) ) ;
255316}
317+
318+ // Create a task that builds all assets and ensures they're ready before copying
319+ const buildAssets = gulp . parallel ( javascripts , styles , icons , zipMaterials ) ;
320+ exports . buildAssets = buildAssets ;
321+
256322exports . serve = gulp . series (
257323 clean ,
258324 gulp . parallel ( cloneBlog , grabEvents ) ,
259325 jekyll ,
260- gulp . parallel ( javascripts , styles , icons , zipMaterials ) ,
326+ buildAssets ,
261327 copyAssets ,
262328 watching ) ;
263329
@@ -312,14 +378,16 @@ exports.serve_stable = gulp.series(
312378 clean ,
313379 gulp . parallel ( cloneBlog , grabEvents ) ,
314380 jekyll ,
315- gulp . parallel ( javascripts , styles , icons , zipMaterials ) ,
381+ buildAssets ,
316382 copyAssets ,
317- simpleServe ) ; let environment = 'development' ;
383+ simpleServe ) ;
384+
385+ let environment = 'development' ;
318386function setProd ( cb ) { environment = 'production' ; cb ( ) ; }
319387exports . prod = gulp . series (
320388 clean ,
321389 gulp . parallel ( cloneBlog , grabEvents ) ,
322390 setProd ,
323391 jekyll ,
324- gulp . parallel ( javascripts , styles , icons , zipMaterials ) ,
392+ buildAssets ,
325393 copyAssets ) ;
0 commit comments