Skip to content

Commit b35e2a0

Browse files
Dale KunceDale Kunce
authored andcommitted
Fix SCSS compilation in build pipeline
- Change styles function to compile main.scss entry point instead of wildcard pattern - Resolves issue where CSS files were not being generated in .tmp directory - Fixes timing issue in copyAssets where CSS files were missing - Adds comprehensive logging to copyAssets and styles functions - Creates buildAssets intermediate task for proper dependency sequencing - Ensures development server serves site with proper CSS styling
1 parent 98b28ca commit b35e2a0

File tree

1 file changed

+77
-9
lines changed

1 file changed

+77
-9
lines changed

gulpfile.cjs

Lines changed: 77 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,72 @@ async function clean () {
4242
exports.clean = clean;
4343

4444
function 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
}
48104
exports.copyAssets = copyAssets;
49105

50106
async 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
}
86147
exports.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+
256322
exports.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';
318386
function setProd (cb) { environment = 'production'; cb(); }
319387
exports.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

Comments
 (0)