Попробуйте так:
// Include gulp
var gulp = require('gulp');
// Include Plugins
var sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
cleanCSS = require('gulp-clean-css'),
sourcemaps = require('gulp-sourcemaps');
// Variables
var
source = 'source/',
target = 'public/',
styles = {
'in': source + 'assets/scss/app.scss',
'out': target + 'assets/css/'
},
// SASS
gulp.task('sass', function() {
return gulp.src(styles.in)
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(autoprefixer())
.pipe(cleanCSS())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(styles.out));
});
Здесь в задаче sass стили берутся из assets/scss/app.scss, расставляются вендор префиксы, удаляются все пробелы/переносы строк и результат размещается в assets/css/
При этом создается карта (sourcemaps). Штука очень полезная при разработке: в инспекторе элементов будет показываться тот scss файл, из которого правило подтягивается. Если что-то не надо - просто удалите ненужную строку.
Отслеживание изменений:
// Watch tasks
gulp.task('watch', function() {
gulp.watch(styles.in, gulp.series('sass'));
});
У вас, обратите внимание, в командной строке ругань о том, что задача отслеживания генерируется либо сериями, либо запуском задач параллельно. Можете просто свой массив включить в gulp.series. Саму задачу можно указать в кавычках, если ничего добавлять не будете, то можно убрать квадратные скобки