объединение задач в команду по умолчанию - PullRequest
0 голосов
/ 01 декабря 2018

Как мне объединить мою задачу styles, мою browser-sync и мою задачу watch в одну gulp команду по умолчанию?

Вот что у меня есть.

var gulp = require("gulp");
var sass = require("gulp-sass");
var browserSync = require("browser-sync").create();

gulp.task("styles", function() {
  gulp
    .src("sass/**/*.scss")
    .pipe(sass().on("error", sass.logError))
    .pipe(gulp.dest("./css/"));
});

// Static server
gulp.task("browser-sync", function() {
  browserSync.init({
    server: {
      baseDir: "./"
    }
  });
});

//Watch task
gulp.task("default", function() {
  gulp.watch("sass/**/*.scss", gulp.series("styles"));
});

Я также пробовал это из документации по синхронизации браузера, но она выдает ошибку AssertionError [ERR_ASSERTION]: Task function must be specified С теми же переменными вверху.

gulp.task("serve", ["sass"], function() {
  browserSync.init({
    server: "./"
  });

  gulp.watch("/sass/*.scss", ["sass"]);
  gulp.watch("/*.html").on("change", browserSync.reload);
});

// Compile sass into CSS & auto-inject into browsers
gulp.task("sass", function() {
  return gulp
    .src("/scss/*.scss")
    .pipe(sass())
    .pipe(gulp.dest("/css"))
    .pipe(browserSync.stream());
});

gulp.task("default", ["serve"]);

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Я предполагаю, что вы используете gulp 4, который обрабатывает зависимые задачи немного по-другому, поэтому вы получаете сообщение об ошибке.

Если вы действительно используете gulp 4, попробуйте официальный рецепт :

var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync');

gulp.task('sass', function() {
  return gulp.src('sass/**/*.scss')
    .pipe(sass().on('error', sass.logError))
    .pipe(gulp.dest('./css/')) //removed semicolon
    .pipe(browserSync.reload({ stream:true }));
});

// watch Sass files for changes, run the Sass preprocessor with the 'sass' task and reload
gulp.task('serve', gulp.series('sass', function() {
  browserSync({
    server: {
      baseDir: './'
    }
  });

  gulp.watch('sass/**/*.scss', gulp.series('sass'));
}));
0 голосов
/ 04 декабря 2018

Только написать команду gulp in, выполнить все задачи.

var gulp = require("gulp");
var sass = require("gulp-sass");
var browserSync = require("browser-sync").create();
var runSequence = require('run-sequence'); // npm install run-sequence --save-dev

gulp.task("styles", function () {
    gulp
      .src("sass/**/*.scss")
      .pipe(sass().on("error", sass.logError))
      .pipe(gulp.dest("./css/"));
});

// Static server
gulp.task("browser-sync", function () {
    browserSync.init({
        server: {
            baseDir: "./"
        }
    });
});


//watch for files changes
gulp.task('watch', ['styles', 'browser-sync'], function () {
    // sass files changes
    gulp.watch('sass/**/*.sass', ['styles']);

    // CSS files changes
    gulp.watch('css/**/*.css', browserSync.reload);
});

// The default task (called when you run 'gulp' from cli)
gulp.task('default', function (callback) {
    runSequence(['styles', 'browser-sync', 'watch'],
      callback
    )
})
...