У меня возникли проблемы с inlining minified CSS с Gulp.Синхронизирующий синхронный сглаживание CSS после выравнивания CSS
Вот мой gulpfile.js:
var gulp = require('gulp'),
runSequence = require('run-sequence'),
$ = require('gulp-load-plugins')(),
browserSync = require('browser-sync'),
del = require('del');
gulp.task('clean', function(){
del(['build/**'])
});
/* Minifying CSS */
gulp.task('css', function(){
gulp.src('./css/*.css')
.pipe($.minifyCss())
.pipe(gulp.dest('./build/css'))
.pipe(browserSync.reload({stream: true}));
gulp.src('./views/css/*.css')
.pipe($.minifyCss())
.pipe(gulp.dest('./build/views/css'))
.pipe(browserSync.reload({stream: true}));
});
/* Inline CSS and Minify HTML */
gulp.task('inline-and-minify', function(){
gulp.src('./*.html')
.pipe($.smoosher({
base: './build'
}))
.pipe($.minifyHtml())
.pipe(gulp.dest('./build'))
.pipe(browserSync.reload({stream: true}));
gulp.src('./views/*.html')
.pipe($.smoosher({
base: './build/views'
}))
.pipe($.minifyHtml())
.pipe(gulp.dest('./build/views'))
.pipe(browserSync.reload({stream: true}))
});
/* Task Bundles, runs tasks one after the other (instead of in parallel) */
gulp.task('build-html', function(callback){
runSequence('clean', 'css', 'inline-and-minify');
});
gulp.task('default', ['build-html']);
Я получаю следующий вывод:
events.js:72
throw er; // Unhandled 'error' event
^
Error: ENOENT, open 'build/css/style.css'
Который смотрит на меня как файл CSS, который уменьшенный не закрывается во время inline- и-minify выполняет задачи.
Я попробовал это, включая таймаут 2 секунды между задачей и что, кажется, решить эту проблему:
gulp.task('build-html', function(callback){
runSequence('clean', 'css');
setTimeout(function(){
gulp.run('inline-and-minify');
}, 2000);
});
Это только кажется немного надуманные, плюс gulp.run осуждается. Есть ли лучший способ сделать это?
Спасибо, , который сработал. –