gulp stream не генерирует файлы dest - javascript


1

Есть ошибка в следующем потоке глотков, но я просто не мог найти, где.

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 не восстанавливается

должно быть что-то мне не хватает.

Источник
  •  52
  •  2
  • 20 мар 2020 2020-03-20 13:19:34

2 ответа

1

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

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

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));
});