Почему не запускается команда gulp serve?

приходится запускать таски по очереди. это глупо, но иначе билд не работает. кто поможет найти ошибку. спасибо

const gulp = require('gulp');
const sass = require('gulp-sass');
const plumber = require('gulp-plumber');
const autoprefixer = require('gulp-autoprefixer');
const browserSync = require('browser-sync').create();
const sourceMaps = require('gulp-sourcemaps');

gulp.task('sass', function () { // таск scss
    return gulp.src('scss/style.scss')
        .pipe(plumber()) // если будут ошибки в style.scss - не отключаться, а работать далее
        .pipe(sourceMaps.init())
        .pipe(sass())
        .pipe(autoprefixer({
            browsers: ['last 2 versions']
        }))
        .pipe(sourceMaps.write())
        .pipe(gulp.dest('build/css')) // будет создаваться папка build, внутри нее будет создаваться папка css и туда будет ложиться файл style.css
        .pipe(browserSync.reload({stream: true})); // перезапускать браузер, при изменениях в таске sass
});

gulp.task('html', function () {
    return gulp.src('*.html')
        .pipe(gulp.dest('build'))
        .pipe(browserSync.reload({stream: true}));
});

gulp.task('serve', function () {
    browserSync.init({
        server: "build"
    });
    gulp.watch("scss/**/*.scss", gulp.parallel("sass")); // следить за всеми файлами в папке scss и при изменении запускать таск под названием scss
    gulp.watch("*.html", gulp.parallel("html")); // тоже самое, только с таском html
});

// данный код не запускается командой gulp serve. приходится перечислять все три таска поочередно.
  • Вопрос задан
  • 222 просмотра
Решения вопроса 1
Добавьте задачу, которая будет запускать последовательно нужные команды за Вас.
gulp.task('default', gulp.series('sass', 'html', 'serve'));

Это распространённая практика.
А для запуска используйте просто команду gulp в консоли

Подходит такое?
Итоговый код Gulp-файл

const gulp = require('gulp');
const sass = require('gulp-sass');
const plumber = require('gulp-plumber');
const autoprefixer = require('gulp-autoprefixer');
const browserSync = require('browser-sync').create();
const sourceMaps = require('gulp-sourcemaps');

gulp.task('sass', function() { // таск scss
  return gulp.src('scss/style.scss')
    .pipe(plumber()) // если будут ошибки в style.scss - не отключаться, а работать далее
    .pipe(sourceMaps.init())
    .pipe(sass())
    .pipe(autoprefixer({
      browsers: ['last 2 versions']
    }))
    .pipe(sourceMaps.write())
    .pipe(gulp.dest('build/css')) // будет создаваться папка build, внутри нее будет создаваться папка css и туда будет ложиться файл style.css
    .pipe(browserSync.reload({
      stream: true
    })); // перезапускать браузер, при изменениях в таске sass
});

gulp.task('html', function() {
  return gulp.src('*.html')
    .pipe(gulp.dest('build'))
    .pipe(browserSync.reload({
      stream: true
    }));
});

gulp.task('serve', function() {
  browserSync.init({
    server: "build"
  });
  gulp.watch("scss/**/*.scss", gulp.parallel("sass")); // следить за всеми файлами в папке scss и при изменении запускать таск под названием scss
  gulp.watch("*.html", gulp.parallel("html")); // тоже самое, только с таском html
});

// данный код не запускается командой gulp serve. приходится перечислять все три таска поочередно.

gulp.task('default', gulp.series('sass', 'html', 'serve'));

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
inkShio
@inkShio
Может поможет тык-тык
Ответ написан
Ваш ответ на вопрос

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

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