|
// Load plugins |
|
const gulp = require("gulp"); |
|
const sass = require('gulp-sass'); |
|
const cleanCSS = require('gulp-clean-css'); |
|
const gulpif = require('gulp-if'); |
|
const rename = require('gulp-rename'); |
|
const kit = require('gulp-kit-2'); |
|
const { series, watch } = require("gulp"); |
|
const browsersync = require('browser-sync').create(); |
|
|
|
|
|
//configurate |
|
let watchMe = false; |
|
const appDefaults = { |
|
stylesDir : "../src/scss/", // path to styles |
|
stylesDirDest : "../dist/assets/css", |
|
watchJavascript : "../js/app.js", |
|
dest : "../dist" |
|
} |
|
|
|
// Styles |
|
function kitCompile (done) { |
|
gulp.src('../*.kit') |
|
.pipe(kit()) |
|
.pipe(gulp.dest(appDefaults.dest)); |
|
done(); |
|
}; |
|
function sassCompile(done) { |
|
gulp.src(appDefaults.stylesDir+'**/*.scss') |
|
.pipe(sass().on('error', sass.logError)) |
|
.pipe(gulp.dest(appDefaults.stylesDirDest)) |
|
.pipe(rename({ suffix: '.min' })) |
|
.pipe(cleanCSS({debug: true, level: {1: {specialComments: 'all'}}}, (details) => { |
|
})) |
|
.pipe(gulp.dest(appDefaults.stylesDirDest)) |
|
.pipe(gulpif(watchMe === true, browsersync.stream())); |
|
done(); |
|
} |
|
|
|
function browsersyncServe(cb){ |
|
browsersync.init({ |
|
server: { |
|
baseDir: '../dist/' |
|
} |
|
}); |
|
cb(); |
|
} |
|
|
|
function browsersyncReload(cb){ |
|
browsersync.reload(); |
|
cb(); |
|
} |
|
|
|
function browsersyncNotify(cb){ |
|
browsersync.notify("sass compile"); |
|
cb(); |
|
} |
|
|
|
function copyAssets(done ){ |
|
gulp.src('../assets/**/*').pipe(gulp.dest(appDefaults.dest + '/assets')); |
|
done(); |
|
} |
|
exports.kitCompile = series(kitCompile); |
|
|
|
function watchTask(){ |
|
watchMe = true; |
|
watch(['../**/*.kit'], series(kitCompile, browsersyncReload)); |
|
watch(['../assets/**/*'], series(copyAssets, browsersyncReload)) |
|
watch(['../**/*.scss'], series(kitCompile, sassCompile, browsersyncNotify)); |
|
} |
|
// tasks run from terminal |
|
exports.watch = series( kitCompile, sassCompile, copyAssets, browsersyncServe, watchTask); |
|
exports.default = series(kitCompile, sassCompile, copyAssets); |
|
|