I have the following gulp task
// global criticalCSS
criticalCSS = "";
// Generate & Inline Critical-path CSS
gulp.task('optimize:critical', ['styles'], function() {
critical.generate({
base: config.critical.base,
src: 'index.html',
css: config.critical.css
}, function (err, output) {
// You now have critical-path CSS
console.log(output);
criticalCSS = output;
});
return gulp.src(config.critical.base + '/*.html')
.pipe(plumber({
errorHandler: onError
}))
.pipe(
htmlreplace({
'criticalCss': '<style>' + criticalCSS + '</style>',
})
)
.pipe(vinylPaths(del))
.pipe(gulp.dest(config.critical.base));
});
I expected that criticalCSS was globally containing the output of critical.generate. The console.log displays the output properly. But in
'criticalCss': '<style>' + criticalCSS + '</style>',
criticalCSS returns a empty string.
How can i solve this issue?