@kirseich
Frontend developer

Gulpfile.js не работает watch, в чем беда?

Через Gulp компилирую scss в css. Все было прекрасно, но начав новый проект, обнаружил, что код Gulpfile.js, который срабатывал от проекта к проекту перестал работать.
'use strict';
 
var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
 
gulp.task('sass', function () {
  gulp.src('./assets/scss/*.scss')
    .pipe(sass().on('error', sass.logError))
    .pipe(sass({outputStyle: 'compressed'}))
    .pipe(autoprefixer({
      browsers: ["last 50 versions", "ie >= 9"],
      cascade: false
  }))
    .pipe(gulp.dest('./assets/css'))
    
});

gulp.task('watch', function () {
  gulp.watch('./assets/scss/*.scss', ['sass']);
});


Когда запускаю watch, то после изменения scss скрипт срабатывает, но после надписи starting 'sass' уже ничего не происходит. Если запустить 'sass', то консоль отвечает
The following tasks did not complete: sass
Did you forget to signal async completion?.


Погуглив, нашел информацию о gulp.parallel и series в Gulp v4, но так и не понял, что к чему. Прошу помочь
  • Вопрос задан
  • 392 просмотра
Решения вопроса 2
Martovitskiy
@Martovitskiy
В четвертой версии появился синтаксис, который позволяет определять порядок запуска задач.
Попробуйте так.
gulp.task('watch', function() {
    gulp.watch('./assets/scss/*.scss',  gulp.series('sass'));
});


вот видео. В нем подробно рассказано, что изменили и зачем
Ответ написан
Ваша ошибка относится к таску sass - далее читаем документацию https://gulpjs.com/docs/en/getting-started/async-c... и самым простым решением будет добавить return
gulp.task('sass', function () {
  return gulp.src('./assets/scss/*.scss')
    .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
    .pipe(autoprefixer({
      browsers: ["last 50 versions", "ie >= 9"],
      cascade: false
    }))
    .pipe(gulp.dest('./assets/css'));
});


Про таск watch написал Martovitskiy
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы