2016-03-31 3 views
1

Ошибка в следующем потоке gulp, но я просто не мог найти, где.gulp stream не генерирует файлы dest

var processors = [autoprefixer({ browsers: ['last 2 version']}), 
        cssnano(),]; 

var myjob = gulp.src(['app/css/normalize.css', 
         'app/css/org.scss']) 
     .pipe(watch('app/css/org.scss', {verbose: true})) 
     .pipe(gulpif('*.scss', sass())) 
     .pipe(concat('org.css')) 
     .pipe(postcss(processors)) 
     .pipe(flatten()) 
     .pipe(gulp.dest('dist')); 

Проблема: dist/org.css не регенерируется

должно быть что-то я здесь отсутствует.

ответ

1

Проблема заключается в том, что gulp-concat не нажимает файл конкатенированного org.css, если он не принимает событие end с восходящего потока. Поскольку gulp-watch никогда не испускает событие end, gulp-concat просто висит бесконечно.

Решение просто заменить gulp-concat с gulp-continuous-concat:

var continuousConcat = require('gulp-continuous-concat'); 

var processors = [autoprefixer({ browsers: ['last 2 version']}), 
        cssnano(),]; 

gulp.task('default', function() { 
    return gulp.src(['app/css/normalize.css', 
        'app/css/org.scss']) 
    .pipe(watch('app/css/org.scss', {verbose: true})) 
    .pipe(gulpif('*.scss', sass())) 
    .pipe(continuousConcat('org.css')) 
    .pipe(postcss(processors)) 
    .pipe(flatten()) 
    .pipe(gulp.dest('dist')); 
}); 
+0

Спасибо !!! Спас мой день! – gongzhitaao

1

В качестве наилучшей практики используйте корень glob «./» для префикса ваших путей. то есть "./app/css/normalize.css" и т. д.

Попробуйте использовать gulp-debug, чтобы узнать, сколько файлов находится в трубе, если они есть. Вы можете добавить отладочную трубу между каждым шагом, чтобы узнать, что происходит.

+0

Спасибо за подсказку Глоб. Я это исправлю. И я использовал 'gulp-debug', он выводит имя файла, но не генерируется файл. Ответ @Sven Schcenung решает мою проблему. – gongzhitaao

Смежные вопросы