kuchuluk
@kuchuluk

Почему перестал запускаться browsersync после того как добавил gulp-less?

Здравствуйте. Делал проект сначала без less, просто на css, все работало. Таким образом:
var gulp = require('gulp'),
	concatCSS = require('gulp-concat-css'),
	bs = require('browser-sync').create(),

gulp.task('default', function(){
	return gulp.src('src/*.html')
	  .pipe(gulp.dest('dist/html'));
});

gulp.task('server', function(){
	bs.init({
        server: {
            baseDir: "src/"
        }
    });
    gulp.watch("src/*.html").on('change', bs.reload);
});

Всё работало, browsersync запускался и обновлял страницу.
Но стоило добавить gulp-less, и всё поломалось
gulp.task('less', function() {
    return gulp.src("src/less/*.less")
    .pipe(less())
    .pipe(gulp.dest("srs/css"))
    .pipe(bs.stream());
});
 
gulp.task('server', 'less', function(){
    bs.init({
        server: {
            baseDir: "src/"
        }
    });
    gulp.watch("src/less/*.less", ['less']);
    gulp.watch("src/*.html").on('change', bs.reload);
});


less тоже пытаюсь через browsersync прогонять, чтобы компилировался и сразу отслеживать изменения. Но выдает ошибку
assert.js:351
throw err;
^

AssertionError [ERR_ASSERTION]: Task function must be specified
at Gulp.set [as _setTask] (C:\Users\Руслан\Documents\work\development\page-p
roofs\forless\node_modules\undertaker\lib\set-task.js:10:3)
at Gulp.task (C:\Users\Руслан\Documents\work\development\page-proofs\forless
\node_modules\undertaker\lib\task.js:13:8)
at Object. (C:\Users\Руслан\Documents\work\development\page-proof
s\forless\gulpfile.js:25:6)
at Module._compile (internal/modules/cjs/loader.js:721:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
at Module.require (internal/modules/cjs/loader.js:657:17)
at require (internal/modules/cjs/helpers.js:22:18)
  • Вопрос задан
  • 220 просмотров
Пригласить эксперта
Ответы на вопрос 1
andreydobrin
@andreydobrin
Сложно , но это пока
Можете таск server засунуть, наоборот, в watcher:
Для простоты, создайте переменную с настройками сервера:
var config = {
server: {
        baseDir: "src/"
    }
}

Watcher будет выглядеть так:
gulp.task('watch', function(){
  browserSync.init(config);
  gulp.watch("src/less/*.less", gulp.series("less")); 
--> x
})


Где Я поставил крестик, можно пихать еще файлы для просмотра вместе с методом gulp.series или gulp.parallel. Их разница в порядке выполнения тасков. Я рекомендую использовать gulp.series для подобных тасков.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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